大家都知道开关在C#中的情况下不允许您根据所选择的开关部分的语句列表的MSDN为什么砸锅开关的情况下编译C#
执行告吹开始第一声明并通过声明列表继续执行,直到达到跳转声明(例如中断,转到,返回或抛出)为止。此时,控制权被转移到switch语句之外或者转移到另一个案例标签。
与C++不同,C#不允许执行从一个开关 节继续到下一节。以下代码会导致错误。
如果那为什么会发生这种编译的情况:
void Main()
{
int s = 3;
switch (s)
{
case 1:
case 2:
case 3:
Console.WriteLine("hit 3");
break;
}
}
不应该这样被认定为编译时错误?
通过* is *允许,但仅限于空案例语句,如本例中所示。这不应该引发运行时异常。这段代码很好。 –
@Dennis_E - 这不是彻底的,但是,它是有效的 – Amit