Me preguntaba por qué C# me exige utilizar break
en una declaración switch
, aunque una semántica fallida por definición no está permitida. por lo tanto, el compilador podría generar el break
al final de cada case
-block y guardarme la molestia.¿Por qué necesito usar break?
Sin embargo, hay un escenario (que ya ha sido discutido en este sitio) que podría llegar a esa podría ser la razón para el uso explícito de break
:
switch (foo) {
case 0:
case 1:
bar();
break;
default:
break;
}
En este caso, el método bar()
se llama si foo
tiene el valor 0 o 1.
Esta opción se rompería en el verdadero sentido de la palabra si el compilador generara break
enunciados por sí mismo. ¿Es este el motivo por el cual el descanso es obligatorio o hay otras buenas razones?
Personalmente, creo que esta fue una decisión de diseño horrible por parte del equipo de C# y uno de los pocos lugares donde fallaron. –
@Chris: Le recomiendo que lea el blog de Eric como está vinculado en la respuesta aceptada. Aborda varias cosas que supongo que son cosas que te han molestado. –
¿Y cómo lo hubieras hecho, Chris? –