- Por defecto, el primer valor de la enumeración es 0, que puede asignarse explícitamente al enum.
- Puedes definir el tipo base del enum, como enum E: short {}, sizeof(E) == 2; int por defecto.
- Cadena de herencia enumerada: TipoValor->Enum->enum
- La conversión entre el tipo de enum y el tipo base es explícita, excepto para el 0, porque existe una conversión implícita de 0 a cualquier tipo de enum.
- El ToString() del enum muestra el identificador de su valor de enum,
- De la cadena a la enumeración: AEnumType a = (AEnumType) Enum.Parse(typeof(AEnumType), "flag"); puede fallar, y el código debe incluir mecanismos de gestión de excepciones.
- Puedes usar Enum.IsDefined() para comprobar si un valor está incluido en un enum.
si (! Enum.IsDefined(typeof(SearchMode), opciones)) lanzar un nuevo ArgumentException(Properties.Resources.InvalidEnumerationValue, "options");
SearchMode es un tipo de enum, si el valor de opciones de paso no está dentro del alcance de esta definición de enum,Por ejemplo, si un enum define 1,2, y las opciones provienen de 3 casts, entonces el método IsDefined devuelve false.
|