- Por padrão, o primeiro valor da enumeração é 0, que pode ser explicitamente atribuído ao enum.
- Você pode definir o tipo base do enum, como enum E: short {}, sizeof(E) == 2; int por padrão.
- Cadeia de herança enumerada: ValueType->Enum->enum
- A conversão entre o tipo de enum e o tipo base é explícita, exceto para 0, porque há uma conversão implícita de 0 para qualquer tipo de enum.
- O ToString() do enum gera o identificador do valor do enum,
- Da string para a enumeração: AEnumType a = (AEnumType) Enum.Parse(typeof(AEnumType), "flag"); pode falhar, e o código deve incluir mecanismos de tratamento de exceções.
- Você pode usar o Enum.IsDefined() para verificar se um valor está incluído em um enum.
se (! Enum.IsDefined(typeof(SearchMode), options)) lançar um novo ArgumentException(Properties.Resources.InvalidEnumerationValue, "options");
SearchMode é um tipo de enum, se o valor de opções de passagem não estiver dentro do escopo dessa definição de enum,Por exemplo, se um enum define 1,2, e as opções vêm de 3 casts, então o método IsDefined retorna false.
|