Se sto usando un'istruzione switch per gestire i valori di una enum (di proprietà della mia classe) e ho un caso per ogni possibile valore - vale la pena aggiungere codice per gestire il caso "predefinito"?
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()
}
Non penso che sia perché questo codice non può mai essere raggiunto (anche con test unitari). Il mio collega non è d'accordo e pensa che ciò ci protegga da comportamenti imprevisti causati dall'aggiunta di nuovi valori a MyEnum.
Cosa dici tu, comunità?
MyEnum
poi lo passa attraverso il tuo interruttore?
switch
affermazione.