C# Enum (Enumeração) com exemplo
⚡ Resumo Inteligente
Em C#, as enumerações definem um conjunto nomeado de valores inteiros constantes, como os dias da semana, tornando o código mais fácil de ler e manter. A palavra-chave `enum` declara essas constantes fixas uma única vez para serem reutilizadas em todo o programa.

Enumeração C#
Uma enumeração é usada em qualquer linguagem de programação para definir um conjunto constante de valores. Por exemplo, os dias da semana podem ser definidos como uma enumeração e usados em qualquer lugar do programa. Em C#, a enumeração é definida com a ajuda da palavra-chave ‘enum’.
Vamos ver um exemplo de como podemos usar a palavra-chave ‘enum’.
No nosso exemplo, definiremos uma enumeração chamada dias, que será utilizada para armazenar os dias da semana. Para cada exemplo, modificaremos apenas a função principal em nosso arquivo Program.cs.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { enum Days{Sun,Mon,tue,Wed,thu,Fri,Sat}; static void Main(string[] args) { Console.Write(Days.Sun); Console.ReadKey(); } } }
Code Explicação:-
- O 'enum' tipo de dados é especificado para declarar uma enumeração. O nome da enumeração é Dias. Todos os dias da semana são especificados como valores da enumeração.
- Finalmente, a função console.write é usada para exibir um dos valores da enumeração.
Se o código acima for inserido corretamente e o programa for executado com sucesso, a seguinte saída será exibida.
Saída:
Na saída, você pode ver que o valor 'Sun' da enumeração é exibido no console.
Por que usar enums em C#?
Enums tornam um programa mais fácil de ler, mais seguro e mais simples de manter. Em vez de espalhar números inexplicáveis, às vezes chamados de números mágicos, por todo o código, uma enumeração atribui a cada valor um nome descritivo que indica sua finalidade.
- Legibilidade: Um nome como Days.Fri é muito mais claro do que o número 5, portanto, qualquer pessoa que leia o código entende o significado imediatamente.
- Segurança do tipo: Uma variável declarada com um tipo enum só pode armazenar um dos membros definidos, o que impede que valores inválidos sejam atribuídos.ping pol
- Capacidade de manutenção: Constantes relacionadas residem em um único local, portanto, adicionar ou renomear um valor atualiza todo o programa de forma consistente.
- Ligação de dados: Frameworks como WPF e ASP.NET podem associar um enum a uma lista suspensa, o que torna os enums úteis para a construção de interfaces de usuário.
Como o compilador verifica cada atribuição em relação aos membros permitidos, os enums também ajudam a detectar erros precocemente, antes da execução do programa.
Atribuindo valores personalizados a um Enum em C#
Por padrão, o C# atribui o valor 0 ao primeiro membro da enumeração e incrementa cada membro subsequente em um. Na enumeração `Days` acima, `Sun` é igual a 0, `Mon` é igual a 1 e `Sat` é igual a 6. Você pode sobrescrever esses valores padrão atribuindo números explícitos.
- Valores explícitos: Escrever o enum Level {Low = 1, Medium = 5, High = 10} define cada membro para um número escolhido em vez da sequência padrão.
- Tarefa parcial: Se você atribuir um valor apenas a alguns membros, o compilador manterá a numeração a partir do último valor atribuído para os membros subsequentes.
- Tipo subjacente: Por padrão, um enum armazena seus membros como int, mas você pode optar por usar byte, short ou long para economizar memória ou ampliar o intervalo.
Valores personalizados são úteis quando os números precisam corresponder a um sistema externo, como códigos de banco de dados ou constantes de protocolo, para que a enumeração reflita exatamente os dados reais.
Como converter enums em C# para int, string e flags
Em C#, é frequente a necessidade de converter um valor de enumeração para outro formato, como armazená-lo como um número ou lê-lo de volta a partir de um texto. Essas conversões ocorrem de algumas maneiras padronizadas.
- Enumeração para inteiro: Uma conversão explícita como (int)Days.Wed retorna o inteiro subjacente, o que é útil para armazenamento ou aritmética.
- int para enum: A conversão na direção oposta, por exemplo (Days)3, transforma um número de volta no membro de enumeração correspondente.
- Conversão de string para enum: Enum.Parse e o mais seguro Enum.TryParse convertem um nome como "Sex" no membro Days.Fri sem gerar um erro de texto inválido.
- Enumeração para string: Chamar ToString em qualquer membro retorna seu nome, então Days.Sun.ToString() produz “Sun” para exibição ou registro.
- Lista de membros: Enum.GetValues e Enum.GetNames retornam todos os valores ou nomes, o que é útil ao preencher menus ou validar entradas.
Quando uma enumeração deve representar uma combinação de opções em vez de uma única opção, aplique o atributo Flags e atribua a cada membro uma potência de dois, como 1, 2, 4 e 8. Em seguida, você pode combinar os membros com o operador OR bit a bit e testar uma opção específica com o método HasFlag.
Essas técnicas de conversão permitem que um enum transite facilmente entre nomes legíveis, números armazenados e conjuntos de sinalizadores combinados, mantendo a integridade do conjunto.ping O restante do programa é seguro em termos de digitação e fácil de seguir.


