Passagem de parâmetros
Você lembra como era a passagem
de parâmetros para funções/ procedimentos no VB 6.0 ???
Esqueceu ???
Vou refrescar sua memória .... !!!
No VB 6.0 quando passamos um parâmetro , se não for definido se o parâmetro é passado por valor - ByVal - ou por referência - ByRef - o VB assume como padrão que o parâmetro vai ser passado por referência (ByRef).
Você se lembra que quando
passamos um parâmetro por referência o parâmero pode ter o seu
valor alterado dentro da função/procedimento chamada. ? Deve
lembrar também que isto pode trazer muitas dores de cabeça para
você ...
Quer ver o porque ??? Então estudo o código abaixo e responda a seguinte pergunta :
" Qual vai ser o valor da variável X ??? "
Private Sub Form_Load() Dim x As Integer Dim y As Integer x = 10 y = Passa_Parametro_Por_Referencia(x) MsgBox " y é igual a " & y & vbCrLf & " x é igual a " & x, vbCritical, "Passagem de parametros ByRef" End Sub |
Function Passa_Parametro_Por_Referencia(valor As Integer) As Integer valor = valor + 10 Passa_Parametro_Por_Referencia = valor End Function |
Execute o projeto e você verá o seguinte resultado :
![]() |
Percebeu
que o valor da variável X foi alterado
na função - Passa_Parametro_Por_Referencia Isto acontece por que quando passamos a variável A como parâmetro para a função o VB 6.0 passou o parâmetro por referência , visto que não informamos nada a respeito. |
No VB.NET não temos este problema por que o padrão da passagem de parâmetros no VB.NET é sempre Por Valor (ByVal)
O mesmo código acima executado no VB.NET irá retornar para a variável X o valor igual a 10. Ou seja o valor original da variável X é mantido após a chamada da função...
Então lembre-se o padrão da passagem de parâmetros no VB é sempre por valor.
até a próxima
dica ...