在交换机的情况下哪个有更好的性能,Enum或Int?

时间:2012-07-17 05:33:04

标签: c# casting enums switch-statement

在考虑使用enum和int作为案例参数的switch案例的性能时,最好使用哪个代码段:

:一种。

switch ((ToolbarButton)BtnId)
{
    case ToolbarButton.SHOWPROPERTYDIALOG:
         OnShowProperties();
         break;
    case ToolbarButton.MOVETOFIRST:
         OnFirstMessage();
         break;
    case ToolbarButton.MOVETOLAST:
         OnLastMessage();
         break;
}

switch (BtnId)
{
     case (int)ToolbarButton.SHOWPROPERTYDIALOG:
          OnShowProperties();
          break;
     case (int)ToolbarButton.MOVETOFIRST:
          OnFirstMessage();
          break;
     case (int)ToolbarButton.MOVETOLAST:
          OnLastMessage();
          break;
}

2 个答案:

答案 0 :(得分:24)

编译完成后,Enums Ints

MSIL中没有任何区别。

答案 1 :(得分:3)

编译时,JIT用Int32类型替换Enums。这被称为内联替换,因此没有性能损失。我更喜欢使用Enums,因为它们提高了可读性,并且可以回溯(Find Reference)。