Из ECMA-334 (спецификация языка C #)
13.1.3 Неявные преобразования перечисления
Неявное преобразование перечислений разрешает decimal-integer-literal 0, которое должно быть преобразовано в любой тип перечисления.
Значение enum's по умолчанию
0
и во время компиляции известно, поэтому он разрешен в инструкции switch. Для значения, отличного от0
, во время компиляции не может быть определено, будет ли это значение существовать в перечислении или нет.Присвоение дополнительных значений новым версиям перечислений или изменение значений элементов перечисления в новой версии, может вызвать проблемы для зависимого исходного кода. Часто бывает, что значения перечисления используются в операторах switch, и если к типу перечисления добавлены дополнительные элементы, тест для значений по умолчанию может неожиданно возвращаться.