我想知道为什么C#要求我break在switch语句中使用,尽管根据定义不允许使用直通语义.因此,编译器可以生成break每个case块的末尾并省去麻烦.
但是,有一种情况(已在本网站上讨论过),我可以提出这可能是明确使用的原因break:
switch (foo) {
case 0:
case 1:
bar();
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
这里,bar()如果foo值为0或1 ,则调用该方法.
如果编译器自己生成break语句,那么这个选项会在最真实的意义上打破.这是它,这是为什么休息是强制性的还是有其他正当理由?