Enum

<< Click to Display Table of Contents >>

Navigation:  Início >

Enum

Previous pageReturn to chapter overviewNext page

Definição

 

Enums são fortemente constantes tipadas. São essencialmente únicas formas que permitem que você atribuir nomes aos integrante valores simbólicos. No C # tradição, eles são fortemente digitado, o que significa que um ENUM de um tipo não pode ser implicitamente atribuído a um ENUM de outro tipo, embora o valor subjacente de seus membros são os mesmos. Na mesma linha, integrante tipos e enums não são intercambiáveis implicitamente. Todas as tarefas entre os diferentes tipos e enum integrante tipos exigem uma explícita expressos.

 

Enums prestam-se mais sustentável código porque eles são simbólicos, o que lhe permite trabalhar com valores integrais, mas usando um nome significativo para o fazer. Por exemplo, qual o tipo de código prefere trabalhar com - um conjunto de valores denominado Norte, Sul, Leste e Oeste ou o conjunto de inteiros 0, 1, 2, 3 e mapeados para que os mesmos valores, respectivamente? Enums que trabalhar com veemência constantes tipadas via simbólica nomes fácil.

 

Exemplo completo de todos as maneiras de se usar

 

  class Program

   {

 

      enum Animal { Gato, Cachorro, Cavalo };

 

      // esse nao é usado nos exemplos abaixo, apenas para mostrar que dá pra

      // mudar os valores

      enum Habilidade

       {

           Forca = 1,

           Velocidade = 2,

           Inteligencia = 4

       };

 

      static void Main(string[] args)

       {

          // declaração

          Animal bicho = Animal.Cavalo;

 

          // escrever

          Console.WriteLine(bicho);

 

          // testar e trocar valor

          if (bicho == Animal.Cavalo)

               bicho = Animal.Cachorro;

 

          // mostrar em forma de "string"

          string nome = Enum.GetName(typeof(Animal), bicho);

          Console.ForegroundColor = ConsoleColor.Yellow;

          Console.WriteLine(nome);

 

          // pegando valores

          Console.ForegroundColor = ConsoleColor.Red;

          int[] vals = (int[])Enum.GetValues(typeof(Animal));

          foreach (int val in vals)

              Console.WriteLine(val);

 

          // pegando nomes como string

          Console.ForegroundColor = ConsoleColor.Blue;

          string[] names = Enum.GetNames(typeof(Animal));

          foreach (string name in names)

              Console.WriteLine(name);

 

          // com foreach

          Console.ForegroundColor = ConsoleColor.Green;

          foreach (Animal animal in Enum.GetValues(typeof(Animal)).Cast<Animal>())

              Console.WriteLine(animal);

 

          // encontrando através de string (útil para pegar de uma combo e transferir para um enum)

          Console.ForegroundColor = ConsoleColor.Magenta;

 

          Animal outro = Animal.Cachorro;

          if (Enum.IsDefined(typeof(Animal), "Cavalo"))

              outro = (Animal) Enum.Parse(typeof(Animal), "Cavalo", true);

 

          if (outro == Animal.Cavalo)

            Console.WriteLine("Consegui transformar string em enum:" + outro);

 

          Console.Read();

       }

   }