LOGIN:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

.Net

Feed da seção .Net

Newsletter de .Net


Sexta-feira, 06/06/2008 - 10:00 - Por Guilherme Bacellar
Seções relacionadas:

.Net Framework Inside : Enumeradores (Enums)

Eu considero os enumeradores como um tipo de dado muito útil do .NET. Eles são flexíveis, rápidos e facilitam muito a vida dos programadores.

Acredito que é importante ressaltar também que os enumeradores são tratados no .NET como ValueTypes.

Sua declaração pode se feita de forma muito simples:
public enum TipoDoUsuario
{
Leitor = 0,
      Contribuidor = 1,
      Revisor = 2, 
      Administrador = 3
}
VB.NET
Public Enum TipoDoUsuario
      Leitor = 0
      Contribuidor = 1
      Revisor = 2
Administrador = 3
End Enum

Por padrão, os enumeradores criados sem um tipo definido de dado, são interpretados como sendo do tipo inteiro (int / Integer).

Os enumeradores podem ainda suportar os tipos (byte / Byte, sbyte / SByte, short / Short, ushort / UShort, int / Integer, uint / UInteger, long Long, ulong / ULong).
public enum TipoDoUsuario : byte
{
Leitor = 0,
      Contribuidor = 1,
      Revisor = 2, 
      Administrador = 3
}
VB.NET
Public Enum TipoDoUsuario As Byte
      Leitor = 0
      Contribuidor = 1
      Revisor = 2
Administrador = 3
End Enum

Usando Enumeradores de Forma Avançada

Os enumeradores podem ser convertidos para string (texto) e para seus tipos primitivos. A operação inversa também pode ser realizada.

Utilizamos muito essas operações para persistir em bancos de dados os valores dos enumeradores. Em nosso exemplo, podemos armazenar o enumerador "TipoDoUsuario" como "byte/Byte" no banco de dados.
Convertendo Enumeradores para os Tipos Primitivos

Para converter os enumeradores para os tipos primitivos, basta utilizarmos um cast (conversão) simples.

TipoDoUsuario enumerador = TipoDoUsuario.Administrador;
byte tipoPrimitivo = (byte) enumerador;
VB.NET
Dim enumerador As TipoDoUsuario = TipoDoUsuario.Administrador

Dim tipoPrimitivo As Byte = DirectCast(enumerador, TipoDoUsuario)           
      
Convertendo os Tipos Primitivos para Enumeradores

O processo de conversão dos tipos primitivos para os enumeradores também são realizados com um cast (conversão) simples.

byte tipoPrimitivo = 2;
            
TipoDoUsuario enumerador = (TipoDoUsuario) tipoPrimitivo;
VB.NET
Dim tipoPrimitivo As Byte = 2

Dim enumerador As TipoDoUsuario = DirectCast(tipoPrimitivo, TipoDoUsuario)           
Convertendo os Enumeradores para String (Texto)

Podemos converter os enumeradores para string (texto) para (p. ex.) enviar a informação como parâmetro de querystring de uma página asp.net. Um mecanismo que costuma utilizar este processo é a serialização XML que o .NET utiliza.

TipoDoUsuario enumerador = TipoDoUsuario.Leitor;

string nomeDoEnumerador = Enum.GetName(typeof (TipoDoUsuario), enumerador);
VB.NET
Dim enumerador As TipoDoUsuario = TipoDoUsuario.Leitor

Dim nomeDoEnumerador = System.Enum.GetName(GetType(TipoDoUsuario), enumerador))
Recuperando String (Texto) para do Enumeradores

Uma vez que temos um enumerador que está representado em formato string (texto), podemos converte-lo novamente para um enumerador.

string nomeDoEnumerador = "Leitor";

TipoDoUsuario enumerador = (TipoDoUsuario) Enum.Parse(typeof (TipoDoUsuario), nomeDoEnumerador);
VB.NET
Dim nomeDoEnumerador = "Leitor"

Dim enumerador As TipoDoUsuario = System.Enum.Parse(GetType(TipoDoUsuario), nomeDoEnumerador)
Recuperando os Itens do Enumerador Programaticamente

Em muitas situações podemos precisar dos valores de determinados enumeradores em formato de string (texto). Uma situação bem cotidiana é a apresentação dos valores de um determinado enumerador em uma combobox.

string[] valores = System.Enum.GetNames(typeof(TipoDoUsuario));
VB.NET
Dim valores() As String

valores = System.Enum.GetNames(GetType(TipoDoUsuario))

Vantagens de Usar Enumeradores

Dentre todas as vantagens que eu um dia possa enumerar para os enumeradores, a principal delas é a capacidade de deixar um código muito limpo e fácil de ser compreendido.

Eles ainda contribuem para uma padronização no desenvolvimento e ouso dizer que facilitam a linha de raciocínio para uma determinada implementação.

Eu, pessoalmente, utilizo os enumeradores em controles do tipo combobox para ASP.NET (Recuperando os valores para apresentador na combobox e convertendo o valor string(texto) selecionado para o enumerador).

Gosto também de utilizar como texto para enviar e/ou receber como parâmetros por querystring.

Todos os artigos de Guilherme Bacellar

0 comentários publicados

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Guilherme Bacellar é Bacharel em Ciências da Computação, Desenvolvedor .NET há 4 anos, MCAD, Autor de Livros e Artigos, Arquiteto de Software do Projeto D.NET (Framework de Desenvolvimento .NET). Blog: http://dotnetmax.bacellar.org/


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.