众所周知,c# 中的 switch case 不允许您根据MSDN失败
所选 switch 部分中的语句列表的执行从第一条语句开始并继续执行语句列表,通常直到到达跳转语句,例如 break、goto case、return 或 throw。此时,控制转移到 switch 语句之外或转移到另一个 case 标签。
与 C++ 不同,C# 不允许执行从一个 switch 部分继续到下一个。以下代码会导致错误。
如果是这样,为什么要编译:
void Main()
{
int s = 3;
switch (s)
{
case 1:
case 2:
case 3:
Console.WriteLine("hit 3");
break;
}
}
这不应该被识别为编译时错误吗?