Enum em C#
quinta-feira, dezembro 17th, 2009Olá a todos novamente. O tópico de hoje tratará de enums, uma estrutura herdada do C e presente em várias linguagens de programação.
A utilidade dos enums está em organizar tipos de dados sequenciais. Dias da semana são um ótimo exemplo. Os enums servem para enumerar estados, também (conectado, desconectado, em espera, por exemplo).
Observe abaixo como declarar um enum com os dias da semana:
Nada de muito fantástico, não é? Há um detalhe aqui. O enum Dom começa com 0 – é o default do C#. Seg seria 1, Ter 2, e assim por diante. Mas adivinhe se podemos mudar essa lógica? Isso mesmo, podemos. E é simples. Podemos fazer:
Isso faria com que Seg fosse 2, Ter 3, e assim por diante.
A classe Enum (com E maiúsculo) fornece alguns métodos interessantes. Observe o código abaixo:
using System.Collections.Generic;
namespace EnumTest
{
class Program
{
enum Dias { Dom=1, Seg, Ter, Qua, Qui, Sex, Sab };
static void Main(string[] args)
{
foreach (string dia in Enum.GetNames(typeof(Dias)))
{
Console.WriteLine(dia);
}
foreach (int i in Enum.GetValues(typeof(Dias)))
{
Console.WriteLine(i);
}
Console.ReadLine();
}
}
}
Com isso, listamos o nome e os valores de todos os itens da nossa enum dos dias da semana.
Há também a possibilidade de mudar o tipo base do enum, bem como criar flags com essa estrutura. Isso fica como dever de casa para a criançada.
Obrigado, e espero que tenham gostado. Até a próxima!