Используйте MyEnum.None
- это намного более выразительно, или даже MyEnum.Invalid
для передачи значения.
Вы также можете установить для него значения, отличные от 0 - поскольку оно основано на int, вы можете установитьоно должно быть -1, а первое допустимое значение - 1:
public enum MyEnum {
InvalidValue = -1,
Value1 = 1,
Value2
}
В своем коде вы можете легко проверить, передается ли это значение, и сгенерировать описательное исключение.
Обнуляемое перечислениеТипа не ожидается и менее выразителен.Пользователи вашего кода должны знать об этом и проверять наличие нулей.