domingo, 4 de dezembro de 2011

Trabalhando com Enum em C#

Muita pessoas desconhecem o poder que um Enum possui, sem falar que as poucas pessoas que fazem uso dele, não sabem aproveitar todas as sua possibilidades.
Utilizar Enum na implementação de software server para facilitar o desenvolvimento, sem falar que com a tipagem você impede erros de programação.

Vamos a um caso básico de Enum:
Campo estado civil: Normalmente esse campo está representado diretamente como uma coluna no banco de dados, com os tipos Char, tinyInt (Falando em SqlServer), porem na implementação do sistema, não sabemos qual é o range do campo, ficamos sempre na duvida: Solteiro, Casado, Divorciado e Viuvo ou 0-Solteiro, 1-Casado, 2-Divorciado e 3-Viuvo.
Particulamente prefiro o uso de inteiros, então quando tenho que fazer campos com valores enumerados no banco sempre uso inteiros, seja para criar campos de status, estado civil etc.
Vamos a primeira implementação:
public enum EstadoCivil
{
    Solteiro = 0,
    Casado = 1,
    Divorciado = 2,
    Viuvo = 3
}
A primeira funcionalidade que fica desconhecida da maioria é o valor para cada item do Enum, quando colocamos o valor para os itens da coleção podemos recuperar fazendo uma cast simples:
Console.WriteLine("{0} - {1}"EstadoCivil.Casado.ToString(), 
(int)EstadoCivil.Casado);
ou
Console.WriteLine("{0} - {1}"EstadoCivil.Casado.ToString(), 
                  EstadoCivil.Casado.ToString("D"));