Если я использую оператор switch для обработки значений из перечисления (принадлежащего моему классу) и у меня есть регистр для каждого возможного значения - стоит ли добавлять код для обработки случая «по умолчанию»?
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()
}
Я не думаю, что это потому, что этот код никогда не может быть достигнут (даже с юнит-тестами). Мой коллега не согласен и считает, что это защищает нас от неожиданного поведения, вызванного добавлением новых значений в MyEnum.
Что скажете вы, сообщество?
MyEnum
затем передает его через ваш переключатель?
switch
оператор.