切换,ifs和常量值

时间:2014-09-25 16:08:18

标签: c# if-statement switch-statement

在C#中,在 switch语句中, case标签中不允许使用非常量值。如果需要支持非常量值,则必须使用 if语句

我的问题很简单:switch内部实现是否限制为常量值允许某种优化,否则无法完成?我基本上要问的是这两个代码片段是否会完全相同:

switch (myEnumVariable)
{
     case MyEnum.Value1:
        ....
        break;
     case MyEnum.Value2:
        .....

     ....
     default:
        ....
}

if (myEnumVariable == MyEnum.Type1)
{
    ....
}
else if (myEnumVariable == MyEnum.Type2)
{
    ....
}
...
else
{
    ....
}

或者 switch语句由于其限制而具有优势。如果没有,为什么有限制?

0 个答案:

没有答案