这是因为在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语句而突然出现错误.此外,当您想要添加其他标签等时会发生什么.