Я только что понял, что добавил значение в список значений "must-handle" в моем перечислении, но я не заметил его до выполнения. Я знаю, что компилятор С# действительно эффективен, когда дело доходит до размышлений и самоанализа типов, поэтому мне было интересно, есть ли способ заставить оператор switch
/case
покрыть все возможные значения enum
?
Пример:
enum Colors
{
Red,
Blue,
Green,
Yellow
};
Colors c = ...;
switch (c)
{
case Colors.Red: // No error, Red is a Color
break;
case Colors.Blue:
case Colors.Green: // No error, Blue and Green handled as well
break;
} // whoops! "error: 'Colors.Yellow' unhandled"
// or even, "error: no 'default' and 'Colors.Yellow' unhandled"
Я хочу решение для компиляции.