如何将枚举传递给方法而不将其作为整数传递

How to pass an enum to a method without passing it as an integer

本文关键字:整数 枚举 方法      更新时间:2023-10-16

I 有一个包含 3 个不同值的枚举

enum
{
    inputValidation_Zipcode,
    inputValidation_String,
    inputValidation_Number
} InputValidation;

我正在尝试将这三个枚举值之一传递给方法,并尝试了以下方法。

bool methodName(enum InputValidation inputenum)
bool methodName(InputValidation inputenum) 

和 OFC

bool methodName(int inpoutenum) 
(

这三个都称为方法名称(InputValidation_Number( (

我知道最后一个会"工作",但允许所有整数作为参数。如何编写仅接受输入验证值的方法?

你的枚举定义是错误的,它应该是:

enum /*class*/ InputValidation
{
    inputValidation_Zipcode,
    inputValidation_String,
    inputValidation_Number
};

然后,您可以使用:

bool methodName(InputValidation inputenum);

通过添加class来尝试作用域枚举,如下所示:

enum class InputValidation
{
    inputValidation_Zipcode,
    inputValidation_String,
    inputValidation_Number
};

欲了解更多信息:https://en.cppreference.com/w/cpp/language/enum