Enum - C#

Amanda Carneiro
3 min readJan 5, 2021

Recentemente voltei para o universo do C# e lembrei de um velho conhecido, o Enum. Confesso que no começo, lá atrás eu me irritava em ter que criar uma classe só para isso em vez de usar só a constante que eu precisava ali e pronto. Só que agora, o Enum reapareceu para mim e achei legal trazer esse tópico. Sem mais delongas, vamos ao que interessa.

O Enum tem uma utilidade prática de servir como substituição para constantes, além de servir como agrupador de itens que fazem parte de uma mesma categoria.

A forma mais simples de utilização do Enum é esta:

enum Esporte
{
Natação,
Vôlei,
Futebol,
Basquete
}

enum é o tipo de enumeração, “Esporte” é o nome desse conjunto de constantes e tudo o que está entre as chaves são os nomes das constantes, por padrão, a constante é um inteiro que se inicia em 0 e vai sendo incrementada em cada item. Podem ser usados os tipos: byte, Short , Integer ou Long, o padrão é o Integer.

Então, se isso fosse escrito no formato de constantes, ficaria mais ou menos assim:

const int Natacao = 0;
const int Volei = 1;
const int Futebol = 2;
const int Basquete = 3;

Tá, e qual a vantagem de ter o enum em vez de ter as constantes no meio do código?

Com o enum, você consegue chamar essas constantes em outras classes e consegue usar esse valor para declaração em uma página WEB por exemplo. Em vez de criar esses mesmos itens cada vez que você precisar dele, é só chamar esse enum e usar, sem gerar lixo no código, sem ficar repetindo a mesma coisa de formas diferentes.

Além disso, ainda existem atributos que podem ser usados, como o Description, que é um atributo string e pode ser útil na hora de trazer o enum. Para a implementação desse tipo de atributo, é necessário o uso do: System.ComponentModel, que é o namespace que inclui as classes e interfaces base para implementar atributos e conversores de tipo.

Um exemplo de uso para o description do enum é a listagem de estados do Brasil:

using System.ComponentModel;public enum UF
{
[Description("Acre")]
AC = 1,
[Description("Alagoas")]
AL = 2,
[Description("Amapá")]
AP = 3,
[Description("Amazonas")]
AM = 4,
[Description("Bahia")]
BA = 5,
[Description("Ceara")]
CE = 6,
[Description("Destrito Federal")]
DF = 7,
[Description("Espírito Santo")]
ES = 8,
[Description("Goiás")]
GO = 9,
[Description("Maranhão")]
MA = 10,
[Description("Mato Grosso")]
MT = 11,
[Description("Mato Grosso do Sul")]
MS = 12,
[Description("Minas Gerais")]
MG = 13,
[Description("Pará")]
PA = 14,
[Description("Paraíba")]
PB = 15,
[Description("Paraná")]
PR = 16,
[Description("Pernambuco")]
PE = 17,
[Description("Piauí")]
PI = 18,
[Description("Rio de Janeiro")]
RJ = 19,
[Description("Rio Grande do Norte")]
RN = 20,
[Description("Rio Grande do Sul")]
RS = 21,
[Description("Rondônia")]
RO = 22,
[Description("Roraima")]
RR = 23,
[Description("Santa Catarina")]
SC = 24,
[Description("São Paulo")]
SP = 25,
[Description("Sergipe")]
SE = 26,
[Description("Tocantins")]
TO = 27
}

Esse tipo de listagem é bastante comum, com o enum, esses mesmos valores podem ser usados várias vezes. Nas páginas WEB a descrição pode ser usada em Selects ou tabelas, sem precisar incluir um bloco de texto enorme, basta fazer uma estrutura de repetição como o for, por exemplo e pronto. Você tem um código claro e limpo, com todas as informações que precisa, com a vantagem de que se você precisar fazer uma alteração para algum item, basta fazer uma vez, no enum, não precisa caçar no código todas as vezes que o item foi usado.

Por hoje é isso, espero que esse artigo seja útil de alguma forma.

--

--

Amanda Carneiro

Engenheira de software, apaixonada por tecnologia. Amo arte, amo conhecer lugares novos e viver viajando é o que me motiva todos os dias.