Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

Enums são um tipo de dados útil que permite definir uma lista de opções nomeadas para uma variável. Por exemplo, se você deseja armazenar cada dia da semana, pode usar uma enumeração para representar os valores válidos.

Enums tornam seu código mais fácil de ler e escrever, encorajando nomes significativos e limitando os valores que você pode usar. Geralmente é conveniente usar uma instrução switch para lidar com os valores possíveis de uma enumeração.

Você pode declarar e usar enums em várias linguagens de programação, incluindo C#.

Como declarar um enum em c#

Em C#, você geralmente decalcará enums no nível do namespace. Por exemplo, em um aplicativo de console C#, você pode declarar seus enums como propriedades de classe. Você pode ver um exemplo neste repositório GitHub.

aulaPrograma
{
enumerar Dia da semana {
Segunda-feira,
Terça-feira,
Quarta-feira,
Quinta-feira,
Sexta-feira,
Sábado,
Domingo
}
instagram viewer

estáticovazioPrincipal(corda[] argumentos)
{

}
}

Quando você declara um enum, cada opção obtém um valor inteiro para representar seu índice. Por padrão, o primeiro valor na enumeração tem um valor de índice de 0. Para mudar isso, você pode especificar seu próprio índice para o primeiro elemento ao declarar a enumeração:

enumerar Dia da semana { 
segunda-feira = 1,
Terça-feira,
Quarta-feira,
Quinta-feira,
Sexta-feira,
Sábado,
Domingo
}

Neste caso, o índice do primeiro elemento Segunda-feira começa em 1. O índice do próximo elemento Terça-feira vai ser 2, e assim por diante.

Como acessar um valor de enumeração em c#

Existem muitas maneiras diferentes de acessar os valores armazenados em enums. O valor retornado para cada opção na enumeração é o índice. Para este exemplo, o valor de Dia da semana. Sexta-feira é 5.

Uma maneira de recuperar o nome do enum é usando o Enums. GetName() função. Isso obtém o nome da opção no índice 5:

corda sexta-feira = Enum. ObterNome(tipo de(dia da semana), dia da semana. Sexta-feira);
Console. WriteLine("Graças a Deus é" + sexta-feira + "!");
// Saída = Graças a Deus é sexta-feira!

Você também pode acessar um valor usando seu índice. Nesse caso, o valor no índice 2 na enumeração Weekday (que é terça-feira) será armazenado na variável:

Dia da semana terça = (Dia da semana)2;
Console. WriteLine("Hoje é " + terça);
// Output = Hoje é terça-feira

Quando você passa um enum como um argumento para Console. WriteLine(), o para sequenciar() método para a enumeração é executado automaticamente. Isso significa que, em vez de imprimir o verdadeiro valor numérico do enum, que é 5, ele imprimirá o valor da string, Sexta-feira.

Console. WriteLine (dia da semana. quinta-feira + " é o novo " + Dia da semana. Sexta-feira);
// Output = Quinta-feira é a nova sexta-feira

Você também pode converter ou analisar o tipo de dados em um número inteiro como outra forma de armazenar o índice de uma opção:

int segundaIndex = (int) Dia da semana. Segunda-feira;
Console. WriteLine (mondayIndex);
// Saída = 1

Como comparar enums em c #

Em C#, você pode comparar enums usando os operadores de comparação (==, !=, , <=, >=). Isso irá comparar o valor numérico das opções.

Dia da semana dia1 = Dia da semana. Segunda-feira;
Dia da semana dia2 = Dia da semana. Terça-feira;

se (dia1 == dia2)
{
Console. WriteLine("Os dias são iguais.");
}
outro
{
Console. WriteLine("Os dias são diferentes.");
}

Neste exemplo, o valor de Weekday. Segunda-feira é 1 e o valor de Dia da semana. Terça-feira é 2, então o 1 == 2 a comparação falhará.

Outra maneira de comparar enums é a É igual a() método:

se (dia1. É igual a (dia2))
{
Console. WriteLine("Os dias são iguais.");
}
outro
{
Console. WriteLine("Os dias são diferentes.");
}

Você também pode usar uma instrução switch C# para comparar um valor com cada opção em uma enumeração. Neste exemplo, o código cairá no caso quarta-feira:

Valor do dia da semanaToCompare = Dia da semana. Quarta-feira;

trocar (valorParaComparar)
{
caso Dia da semana. Segunda-feira:
Console. WriteLine("Eu preciso de café.");
quebrar;
caso Dia da semana. Terça-feira:
Console. WriteLine("Eu preciso de café.");
quebrar;
caso Dia da semana. Quarta-feira:
Console. WriteLine("Eu preciso de café.");
quebrar;
caso Dia da semana. Quinta-feira:
Console. WriteLine("Quinta-feira é a nova sexta-feira!");
quebrar;
caso Dia da semana. Sexta-feira:
Console. WriteLine("Graças a Deus é sexta-feira!");
quebrar;
caso Dia da semana. Sábado:
Console. WriteLine("Meu dia favorito!");
quebrar;
caso Dia da semana. Domingo:
Console. WriteLine("Meu outro dia favorito!");
quebrar;
padrão:
Console. WriteLine("Dia da semana inválido.");
quebrar;
}

Como Iterar sobre Enums em C #

Você pode iterar sobre enums em C# usando o Enum. ObterValores() método, que retorna uma matriz de todos os valores na enumeração. Este trecho de código imprime cada dia da semana, incluindo segunda-feira, terça-feira e assim por diante:

para cada (Dia da semana em Enum. ObterValores(tipo de(dia da semana)))
{
Console. WriteLine((int)dia); // Para imprimir o índice
Console. WriteLine (dia); // Para imprimir o valor do texto
}

Você também pode iterar sobre valores de enumeração usando o Enum. GetNames() método. Ele retorna uma lista de valores de string para representar os nomes das opções de enum:

para cada (corda nome em Enum. GetNames(tipo de(dia da semana)))
{
int índice = (int)(Dia da semana) Enum. Analisar(tipo de(dia da semana), nome);

Console. WriteLine (índice); // Para imprimir o índice
Console. WriteLine (nome); // Para imprimir o valor do texto
}

Usando Enums em C#

Você pode usar enums em seu código para torná-lo mais legível e menos propenso a bugs. Enums também podem ser muito úteis quando combinados com outras estruturas, como dicionários.