当我必须编写多个条件语句时,我通常会使用switch语句,通常是在三个或更多定义良好的条件下。
但是,为了处理包含失败行为的双条件语句,我经常在简单的if、else if、else语句和switch语句之间犹豫不决:
if (condition1)
{
// handling condition1.
}
else if (condition2)
{
// handling condition2.
}
else
{
// handling fall-through.
}
或者
switch (n)
{
case condition1:
// handling condition1.
break;
case condition2:
// handling condition2.
break;
default:
// handling fall-through.
break;
}
在某些语言和编程环境中,使用 case 或 switch 语句被认为优于等效的一系列 if-else 语句,因为它是:
- 更易于调试(例如,如果调试器没有条件断点功能,则在代码与调用表上设置断点)
- 更容易阅读(主观)
- 更容易理解,因此
- 更容易维护
- 更快的执行潜力
关于 .NET 公共语言运行时,在这种情况下,switch 语句的更快执行潜力是否可行?
我很想知道公共语言运行时如何处理这两种情况,以及其中一种情况如何优于另一种情况。