TOC

This article has been localized into Portuguese by the community.

Tópicos avançados:

Enumerations

Enumerações são conjuntos especiais de valores nomeados que todos mapeiam para um conjunto de números, geralmente inteiros. Eles são úteis quando você deseja escolher entre um conjunto de valores constantes, e com cada valor possível relacionado a um número, eles podem ser usados em uma ampla gama de situações. Como você verá no nosso exemplo, as enumerações são definidas acima das classes, dentro do nosso namespace. Isso significa que podemos usar enumerações de todas as classes dentro do mesmo namespace.

Aqui está um exemplo de uma enumeração simples para mostrar o que eles são.

public enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

Todos esses valores possíveis correspondem a um número. Se não os definirmos especificamente, o primeiro valor é igual a 0, o próximo a 1 e assim por diante. O seguinte trecho de código provará isso, assim como mostrará como usamos um dos valores possíveis do enum:

using System;

namespace ConsoleApplication1
{
    public enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

    class Program
    {
        static void Main(string[] args)
        {
            Days day = Days.Monday;
            Console.WriteLine((int)day);
            Console.ReadLine();
        }
    }
}

A saída será zero, porque o valor de segunda-feira mapeia diretamente para o número zero. Obviamente, podemos mudar isso - mudar a linha para algo como isto:

public enum Days { Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

Se você executar nosso código novamente, verá que a segunda-feira agora é igual a 1, em vez de 0. Todos os outros valores serão um número maior, além de um resultado. Você pode atribuir outros números aos outros valores também. Por causa do mapeamento direto para um número, você pode usar números para obter um valor correspondente da enumeração, assim:

Days day = (Days)5;
Console.WriteLine(day);
Console.ReadLine();

Outro recurso interessante de enumerações é o fato de que você pode uma representação de string dos valores também. Altere o exemplo acima para algo como isto:

static void Main(string[] args)
{
    string[] values = Enum.GetNames(typeof(Days));
    foreach(string s in values)
        Console.WriteLine(s);
    
    Console.ReadLine();
}

A classe Enum contém um monte de métodos úteis para trabalhar com enumerações.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!