我正在制作一个项目,我有一个问题。我有3个这样的枚举状态:
enum GameLevel
{
Level1,
Level2,
None,
}
我的代码中有一部分我要检查是否有任何级别被选中或没有,所以我想做类似的事情:
case !GameLevel.None
或
case GameLevel.Level1 || GameLevel.Level2
这可能吗?
答案 0 :(得分:9)
各种选择:
使用默认开关:
switch (level)
{
case GameLevel.None:
// Whatever
break;
default:
// Do something else
// break
}
使用具有明确案例的开关:
// Note: if you add a Level3, you'd need to change this...
switch (level)
{
case GameLevel.Level1:
case GameLevel.Level2:
// Whatever
break;
}
使用if
声明:
if (level != GameLevel.None)
{
...
}
答案 1 :(得分:1)
切换不是用来获得"不是这种情况" -case。但是,当其他情况为" false"时,您可以使用始终执行的default:
个案。
为!GameLevel.None
更好地使用if案例。 if(selectedGameLevel != GameLevel.None) { }
答案 2 :(得分:0)
我认为作业的选择应该基于您计划实施的级别。对于较少的级别(如您的示例所示),我将使用if和else if而不是使用switch。如果有更多选项,则切换只能更好地工作,因为它会以不同的方式执行以加快执行速度。 Jon Skeet的回答将指导您如何实施您的选择。