quinta-feira, 10 de março de 2011

“ByVal” e “ByRef” em VB.NET

Saudações, pessoal!

O significado das palavras-chaves ByVal e ByRef é muito simples, só que ainda causam dúvidas em alguns programadores, principalmente àqueles que estão entrando neste universo particular. Para exemplificar, vamos utilizar dois procedimentos em VB.NET do tipo Sub, ou seja, que não retornam valores, sendo que os dois terão a mesma implementação, mudando somente o tipo de passagem de valores.

ByVal – Por valor. Um argumento definido como sendo ByVal, não altera o valor da variável que foi passada como parâmetro para o procedimento.
ByRef – Por referência. Um argumento definido como sendo ByRef, altera o valor da variável que foi passada como parâmetro para o procedimento.

Pela definição acima, percebemos que a diferença entre eles é bem simples. Vamos ao exemplo. Crie um novo projeto do tipo Windows Forms Application no Visual Studio (File > New > Project) em linguagem VB.NET.

Adicione dois controles Button ao Form, e altere a propriedade Text dos controles para “Método 1” e “Método 2”.



Pressione a tecla de atalho F7 para termos acesso ao View Code do Form. Escreva os procedimentos no editor conforme a listagem abaixo:

Private Sub Metodo1(ByVal param1 As Integer)
    param1 *= 2
End Sub

Private Sub Metodo2(ByRef param1 As Integer)
    param1 *= 2
End Sub

Volte para o Design do Form, e dê um duplo-clique no Button1. Escreva o trecho abaixo no evento Click do botão.

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
    Dim valor As Integer = 15
    Metodo1(valor)
    MessageBox.Show(valor.ToString(), "Método 1")
End Sub

Proceda da mesma forma para o Button2.

Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
    Dim valor As Integer = 15
    Metodo2(valor)
    MessageBox.Show(valor.ToString(), "Método 2")
End Sub

A idéia é muito simples. Nos dois botões, declaramos uma variável chamada valor e inicializamos com o número 15. Após o procedimento, vamos exibir uma caixa de mensagem mostrando o novo valor da variável criada. Atente para os resultados dos métodos. Pressione a tecla F5 e rode a aplicação.

Clique no botão referente ao Método 1 e veja o resultado.



Agora, clique no botão do Método 2.



Percebeu a diferença? Pois é, o exemplo do projeto é muito simples, mas é claro e objetivo.
Espero ter ajudado a esclarecer a dúvida de alguns colegas da área.

Até a próxima!

Nenhum comentário:

Postar um comentário

Deixe aqui seu comentário