terça-feira, 8 de março de 2011

Usando um objeto da classe Dictionary

Através do namespace System.Collections.Generic do .NET Framework, podemos encontrar várias classes que nos permitem criar coleções genéricas fortemente tipadas. Especificamente, vamos tratar sobre a classe Dictionary que nada mais é do que uma coleção que utiliza a dupla chave-valor. 


Para cada chave, teremos um valor correspondente e baseado no tipo que especificamos na instância da classe. 
Veja o método construtor da classe e seus devidos parâmetros de entrada. 

Dictionary (Of TKeyTValue)

Pois bem, vamos utilizar a linguagem VB.NET para demonstrar, mas as coleções estão disponíveis para linguagem suportadas pelo CLR (Common Language Runtime). Crie um novo projeto do tipo Windows Forms Application no Visual Studio (File > New > Project) em linguagem VB.NET. 




Imagine que a aplicação que iremos escrever, precise listar algumas formas de pagamento para alimentar um controle do tipo ComboBox. Pensando nisso, adicione uma classe na solução atual (Project > Add Class) e nomeie para Class1. 

Crie um método estático que retorne uma coleção do tipo Dictionary conforme a listagem abaixo.


Public Class Class1
    Public Shared Function FormaDePagamento() As Dictionary(Of StringByte)
        Dim _dicionario As New Dictionary(Of StringByte)
        With _dicionario
            .Add("CHEQUE", 1)
            .Add("CRÉDITO", 2)
            .Add("DÉBITO", 3)
            .Add("DINHEIRO", 4)
        End With
        Return _dicionario
    End Function
End Class

Voltando para o formulário do projeto, adicione um controle ComboBox e um Button. Posicione os controles de acordo com a imagem a seguir. 


Dê um duplo-clique no meio do Form1 e escreva as linhas abaixo no evento Load do formulário. Perceba que criaremos um objeto antes do evento, para que fique acessível em todo o escopo do Form1.


Dim _formaDePagamento As Dictionary(Of StringByte) = Class1.FormaDePagamento()

Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
    For Each o As KeyValuePair(Of StringByteIn _formaDePagamento
        ComboBox1.Items.Add(o.Key)
    Next
End Sub

Para concluir o exemplo, dê um duplo-clique no controle Button do Form e escreva as linhas abaixo no evento Click.

Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
    Dim codigo As String = _formaDePagamento(ComboBox1.Text)
    MessageBox.Show(codigo.ToString())
End Sub

Compilando a aplicação (e se tudo correr bem), teremos o resultado seguinte.

Para obter mais informações sobre a classe Dictionary, leia a documentação no MSDN.

Até mais!

Nenhum comentário:

Postar um comentário

Deixe aqui seu comentário