dimarts, 26 de febrer del 2008

Visual .Net


Pas de paràmetres per valor (ByVal)
Quan passem un paràmetre per valor a un procediment, la variable que conté el paràmetre pot ser modificada dins el procediment sense que aquesta modificació afecti al valor original de la variable en el codi que crida a aquesta funció o procediment.Ho veurem millor en un petit exemple:

Sub Main()
Dim Nom As String

Nom = "Ramon"

' Cridem a una funció i li passem una variable per valor
Prova(nom)

' la variable que hem passat al procediment
' al tornar aquí no ha estat canviada ja que l'hem
' passada per valor. Nom continua sent Ramon

Console.WriteLine("Valor de la variable dins de Main(): {0}", nom)
Console.ReadLine()
End Sub


Sub Prova(ByVal ValorMostrar As String)
' modifiquem el valor del paràmetre
' Aquest canvi no afecta a la variable nom
ValorMostrar = "Sara"

Console.WriteLine("Valor del paràmetre dins de Prova(): {0}", ValorMostrar)
End Sub


El que passa en el codi anterior a nivell de gestió interna dels paràmetres en memòria és el següent:Quan es realitza la crida al procediment o funció, el llenguatge detecta que és un
paràmetre passat per valor. Per això crea una nova variable en memòria que serà la que
manipularem dins la funció.Per defecte en Visual .net els paràmetres es passen per valor.