Escrito em September 5th, 2008 as 8:56 am por

0 Comentários

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:
C#

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).

C#

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.

C#

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.

C#

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.

C#

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.

C#

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.

C#

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.

Se você gostou do post, deixe um comentário ou assine nosso RSS RSS.

Posts Relacionados:

  1. .Net Framework Inside : Otimizações do Compilador
  2. .Net Framework Inside : On Error Resume Next (Anjo ou Demónio)?
  3. .Net Framework Inside : Strings (System.String)
  4. Compressão de (Compactar) ViewState
  5. Ordenação de Listas (Coleções)
  6. Reflection – Parte 4 (Propriedades)
  7. Reflection – Parte 3 (Fields)
, , ,

Be the first to start a conversation

Deixa uma Resposta

znjdb32s6g