为什么需要在switch语句的最后一个标签之后放置?

CJ7*_*CJ7 4 c# switch-statement

当然编译器知道它是switch声明的最后一个标签?

Dea*_*ing 7

这是因为在C++中会发生这种情况:

switch(a)
{
     case 1:
        // do stuff

     case 2:
        // do other stuff
}
Run Code Online (Sandbox Code Playgroud)

如果a是1,那么 - 根据C++规则 - "做东西" "做其他东西"都会发生.因此,进入C#的C++程序员不会被绊倒(并且为了使代码更清晰),C#要求您明确指定是想要break还是要通过不同的标签.

现在,为什么你需要break的在最后的块,这是一致的一个简单的事情.它还使重新分解更容易:如果你移动案例,你不会因为缺少break语句而突然出现错误.此外,当您想要添加其他标签等时会发生什么.


Chr*_*tow 6

在你的开关的最终案例陈述之后休息是好的防御性编程.如果,也许在未来,另一种情况声明如下的添加,它会删除该程序的流程的风险下降,通过从上面的情况.