'||' 要在switch语句中的两个枚举之间使用的运算符

Coo*_*lee 1 c# switch-statement or-operator

我想检查函数是否返回两个枚举值中的任何一个,每个枚举值都是相同的枚举类型.

为简单起见,我试图创建一个案例如下:

case EnumerationTypeExample.TypeA || EnumerationTypeExample.TypeB:
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不能取悦C#,它说我不能使用'||' 尽管操作员属于同一类型; 奇怪.有没有办法可以这样做呢?if语句也许可能有效,我可能会退缩,但是,如果可能的话,我宁愿使用switch语句.

Pou*_*Bak 5

case语句必须是常量,而不是计算.但是你可以fall through在这种情况下使用:

switch (something)
{
    case EnumerationTypeExample.TypeA:
    case EnumerationTypeExample.TypeB:
    {
        DoSomething();   
        break;  
    }
}
Run Code Online (Sandbox Code Playgroud)

现在代码将在两种情况下运行.