На самом деле Есть один случай, когда вам не нужно ставить break
Рассмотрите этот код:
using System;
public class Program
{
public static void DoStuff()
{
}
public static void DoAnotherStuff()
{
}
public static void Main()
{
switch(1)
{
case 1: DoStuff(); break;
default: DoAnotherStuff();
}
}
}
Используя компилятор C # 4.0, он дает вам толькоХорошее CS0162: Предупреждение о недоступном коде
Похоже, что так как switch имеет постоянное выражение, компилятор уже знает, по какому пути он будет выполняться, а затем просто игнорирует метку dafault.что если вы измените switch (1) на switch (2), он больше не будет компилироваться, потому что у метки по умолчанию отсутствует разрыв.
Редактировать: Из C # Reference
В C # требуется, чтобы конец каждой секции коммутатора, включая последнюю, был недоступен.Хотя это требование обычно выполняется с помощью оператора перехода, следующий случай также допустим, потому что конец списка операторов не может быть достигнут.
case 4:
while (true)
Console.WriteLine("Endless looping. . . .");
Это объясняет, почему по умолчанию не требуетсяперерыв.На самом деле любой недостижимый ярлык не нуждается ни в разрыве, ни в возврате, ни в начало