<< Click to Display Table of Contents >> Enum |
![]() ![]() ![]() |
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();
}
}