在考虑使用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;
}
答案 0 :(得分:24)
编译完成后,Enums
为 Ints
。
MSIL中没有任何区别。
答案 1 :(得分:3)
编译时,JIT用Int32类型替换Enums。这被称为内联替换,因此没有性能损失。我更喜欢使用Enums,因为它们提高了可读性,并且可以回溯(Find Reference)。