C#:非标记枚举,是否有更简单的方法来检查枚举以匹配多个值中的一个?

时间:2017-03-30 09:07:22

标签: c# enums

以下是示例,CommandType是枚举。它是一个无旗枚举。

CommandType cmdType = CommandType.back;
if (cmdType == CommandType.back || cmdType == CommandType.forward || cmdType == CommandType.previous || cmdType == CommandType.home)
{
//do something
}

有没有办法简化" if"声明?

3 个答案:

答案 0 :(得分:3)

switch怎么样?

switch(cmdType)
{
    case CommandType.back:
    case CommandType.forward:
    case CommandType.previous:
    case CommandType.home:
       // do something 
       break;
}

答案 1 :(得分:0)

您始终可以使用switch语句。它表现更好,更具可读性:

switch (cmdType)
{
    case CommandType.back:
    case CommandType.forward:
    case CommandType.previous:
    case CommandType.home:
        //do somehting
        break;
    default:
        //do something else
        break;
}

答案 2 :(得分:0)

您可以使用switch语句

CommandType cmdType = CommandType.home;

switch(cmdType)
{
    case CommandType.back:
    case CommandType.forward:
    case CommandType.previous:
    case CommandType.home:
        // do somethinig
        break;
}