Si estoy usando una instrucción switch para manejar valores de una enumeración (que es propiedad de mi clase) y tengo un caso para cada valor posible, ¿vale la pena agregar código para manejar el caso "predeterminado"?
enum MyEnum
{
MyFoo,
MyBar,
MyBat
}
MyEnum myEnum = GetMyEnum();
switch (myEnum)
{
case MyFoo:
DoFoo();
break;
case MyBar:
DoBar();
break;
case MyBat:
DoBat();
break;
default:
Log("Unexpected value");
throw new ArgumentException()
}
No creo que sea porque este código nunca se puede alcanzar (incluso con pruebas unitarias). Mi compañero de trabajo no está de acuerdo y cree que esto nos protege contra comportamientos inesperados causados por la adición de nuevos valores a MyEnum.
¿Qué dices, comunidad?
MyEnum
luego pasarlo a través de su interruptor?
switch
completo la declaración.