简体   繁体   English

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

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

I Have an enum which contains 3 different values 我有一个包含3个不同值的枚举

enum
{
    inputValidation_Zipcode,
    inputValidation_String,
    inputValidation_Number
} InputValidation;

I am trying to pass one of these three enum values to a method, and have tried the following. 我试图将这三个枚举值之一传递给方法,并尝试了以下方法。

bool methodName(enum InputValidation inputenum)

bool methodName(InputValidation inputenum) 

and ofc 和ofc

bool methodName(int inpoutenum) 

(All three called as methodName(InputValidation_Number) ) (这三个全称为methodName(InputValidation_Number))

I know the last one will "work" but allows ALL integers as arguments. 我知道最后一个将“工作”,但允许所有整数作为参数。 How can I Write a method to only accept the inputValidation values? 如何编写仅接受inputValidation值的方法?

Your enum definition is wrong, it should be: 您的枚举定义是错误的,应该是:

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

Then you might use: 然后,您可以使用:

bool methodName(InputValidation inputenum);

Give scoped enum a try by adding class as follows: 通过添加class来尝试对作用域枚举进行尝试,如下所示:

enum class InputValidation
{
    inputValidation_Zipcode,
    inputValidation_String,
    inputValidation_Number
};

For more information: https://en.cppreference.com/w/cpp/language/enum 有关更多信息: https : //en.cppreference.com/w/cpp/language/enum

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM