Подводные камни enum
От: varenikAA  
Дата: 08.05.19 03:44
Оценка:
В процессе работы заметил, что
enum довольно "слабый" тип, который скорее является простым алиасом/набором констант для
численных типов.
Так, доступим есть тип
 
enum Month
{
    Jan = 1,
    Feb = 2
}

тогда, если
var zero = default(Month); //=> 0

или
var m = (Month)10; //=> 10!!!
var t = m.GetType(); //=> Month!!!


Т.е. что первый код, что второй приводят к скрытой ошибке.
Таким образом, мы вынужденны всегда проверять значение через
Enum.IsDefined

, что согласитесь неудобно.
Отредактировано 08.05.2019 3:46 varenikAA . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.