Я также добавил бы, что синтаксис с 0
вместо точного enum
в switch
может стать неприемлемым. Рассмотрим следующий код:
enum TestEnum
{
NA = 0,
A
}
, а затем
var e = TestEnum.NA;
switch(e)
{
case 0:
{
break;
}
case TestEnum.A:
{
break;
}
}
Это компилируется и работает хорошо. Однако если по какой-либо причине объявление enum
изменяется на
enum TestEnum
{
NA = 1,
A
}
, все будет нарушено.
Хотя в большинстве ситуаций значением по умолчанию для enum
является 0
, и по этой причине этот синтаксис может иметь место, я бы использовал точный enum
.