Перечисления поддерживаются целочисленными типами и ведут себя как они (в основном).
К сожалению, это означает, что вы можете присвоить любое значение , которое является допустимым для базового типа, для перечисления - проверка не производится.
В случае инициализации по умолчанию это будет значение по умолчанию базового типа, которое для целочисленных типов равно 0
.
Вы также можете сделать это, и он скомпилируется и запустится:
var value = (Test)43;
Возможно, переопределите ваше перечисление следующим образом:
public enum Test
{
None = 0,
One = 1,
Two = 2
}
Класс Enum
имеет несколько удобных методов для работы с перечислениями, таких как IsDefined
, чтобы выяснить, содержит ли переменная определенное значение перечисления.