Lógicamente None
podría ser una opción válida (depende del significado de su enumeración) -> podría tener una rama separada en una caja de conmutación (discutible - no siempre una opción None
hace SENCE)
En cuanto a tener un None
opción una variable Nullable<Mode>
: me gustaría obtener None
por consistencia: si tiene 3 opciones válidas y None
es una de ellas, ¿por qué tratarlo de manera diferente?
Y si elige o no tiene una opción None
, siempre debe tener un valor enum mapeado como 0 (la opción predeterminada). El link proporcionada por Hans Kesting hace un buen punto de tener un valor asignado como 0:
El valor por defecto de una enumeración no inicializado, al igual que otros tipos de valores, es cero. Una enumeración no atribuida a banderas debe definir un miembro con el valor de cero, de modo que el valor predeterminado sea un valor válido de la enumeración. Si corresponde, nombre el miembro 'Ninguno'. De lo contrario, asigne cero al miembro más comúnmente utilizado. Tenga en cuenta que si el valor del primer miembro de enumeración no está establecido en la declaración, su valor es cero por defecto.
Marqué su respuesta como útil. –