C# '||';switch语句中两个枚举之间要使用的运算符
我想检查一个函数是否返回两个枚举值中的任何一个,每个枚举值都是相同的枚举类型 为了简单起见,我尝试创建一个案例,如下所示:C# '||';switch语句中两个枚举之间要使用的运算符,c#,switch-statement,or-operator,C#,Switch Statement,Or Operator,我想检查一个函数是否返回两个枚举值中的任何一个,每个枚举值都是相同的枚举类型 为了简单起见,我尝试创建一个案例,如下所示: case EnumerationTypeExample.TypeA || EnumerationTypeExample.TypeB: 不幸的是,这并不能取悦C#,它说我不能使用“| |”操作符,尽管它们是相同类型的;奇怪的有没有别的办法?if语句可能会起作用,我可能会退一步说,但是,如果可能的话,我更愿意使用switch语句。case语句必须是常量,而不是计算。 但是,在
case EnumerationTypeExample.TypeA || EnumerationTypeExample.TypeB:
不幸的是,这并不能取悦C#,它说我不能使用“| |”操作符,尽管它们是相同类型的;奇怪的有没有别的办法?if语句可能会起作用,我可能会退一步说,但是,如果可能的话,我更愿意使用switch语句。case语句必须是常量,而不是计算。 但是,在这种情况下,您可以使用
fall-through
:
switch (something)
{
case EnumerationTypeExample.TypeA:
case EnumerationTypeExample.TypeB:
{
DoSomething();
break;
}
}
现在代码将在这两种情况下运行。case语句必须是常量,而不是计算。 但是,在这种情况下,您可以使用
fall-through
:
switch (something)
{
case EnumerationTypeExample.TypeA:
case EnumerationTypeExample.TypeB:
{
DoSomething();
break;
}
}
现在,代码将在这两种情况下运行。如果在您的脑海中,您记得或正在与枚举一起使用,那是因为按位OR(单个管道字符,
|
)习惯性地与[标志]
枚举一起使用,以组合它们所表示的位。正如您所发现的,逻辑OR(两个管道字符,|
)只能与两个布尔运算符一起使用。如果您记得或正在与枚举一起使用,那是因为按位OR(一个管道字符,|
)通常与[标志]一起使用
枚举以组合它们所表示的位。正如您所发现的,逻辑OR(两个管道字符,|
)只能与两个布尔运算符一起使用。