Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Enum - como funciona?

Nos cursos anteriores não foi apresentado o Enum, como é o funcionamento deste tipo?

3 respostas

Enumeradores são constantes fortemente tipadas. São muito bem utilizados quando existem tipos bem definidos e pouco mutável, como status, tipo sanguíneo, tipos de impostos. Elas são estáticas, ou seja, não é possível nem preciso acessar os seus valores instanciando um objeto utilizando a palavra reservada new. O acesso é feito a partir do nome da classe em que está contido e em seguida o nome do enum a ser utilizado.

Imagine que no seu banco de dados você tem uma coluna Tipo de Imposto, o que fica melhor, gravar diversas vezes o texto "ICMS" ou 2, por exemplo? Com o Enum você relaciona o 2 ao texto "ICMS", usando TipoImposto.ICMS, por exemplo.

Ian, obrigado pela resposta, só não entendi a segunda parte da sua resposta, poderia dar um exemplo?

solução

Nesse caso, quero dizer que é mais fácil você usar a referência do Enum, na hora da persistência.

Imagine que tenhamos o seguinte enum:

public Enum TipoImposto{
    ICMS = 1,
    ICC = 2
}

Ai no seu banco de dados você gravou o TipoImposto usando o value do campo, por exemplo 1. Então na hora que você recuperar esses valores você faz um "de para" e pega o texto do enum. Ex:

int value = PegaValorDoBD();
Enum tipoImpostoVar = (TipoImposto)value;
string stringValue = tipoImpostoVar .ToString();

Então no banco você gravou 1, pega esse valor do banco através do método PegaValorDoBD, faz o parse desse 1 para o enum, então a variável tipoImpostoVar agora tem (ICMS, 1) e então você manda o ToString, onde você terá o valor do enum.

Ou seja, através da chave (1), você encontra o valor (ICMS).

O porque que isso é mais simples? Imagine que agora o ICMS é renomeado para ICMPTU (sei lá), então você só precisará atualizar o seu enum, e não toda a sua base de dados, pois você estará trabalhando com referências e não valores fixos. Outra vantagem é evitar os erros de digitação, pois toda vez que trabalhamos com Strings corremos esse risco.

Creio que seja isso.

Se essa resposta lhe for útil, por favor marque como solução.

Grato,

Ian Campelo

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software