Цитата:
Сообщение от
mazzy
сложно найти все switch, которые относятся к данному случаю (в Аксапте к данному enum)
Как раз для enum'ов switch очень даже прекрасно подходит, если использовать простые правила касаемо default:
- всегда использовать блок default;
- либо явно предусматривать в нем логику для "всех остальных" случаев, либо ставить там заглушку, чтобы код сразу валился при неизвестных на момент разработки значениях
Например:
X++:
switch (noYesValue)
{
case NoYes::No :
// ...
break;
case NoYes::Yes :
// ...
break;
default :
throw error(Error::unsupportedEnumValue(noYesValue));
}
Здесь Error::unsupportedEnumValue() - метод вида:
X++:
public static LabelType unsupportedEnumValue(anytype _enumValue)
{
return strfmt(@"Значение %1 (%2) не поддерживается", _enumValue, any2int(_enumValue));
}