Parámetros por valor y referencia

Solo disponible en BuenasTareas
  • Páginas : 3 (710 palabras )
  • Descarga(s) : 0
  • Publicado : 26 de abril de 2011
Leer documento completo
Vista previa del texto
Pasar parámetros por valor y por referencia (ByVal y ByRef)
Los parámetros en las funciones y procedimientos, se pueden enviar de dos maneras: por Valor y por Referencia.
Si están declarados comoByVal, los mismos serán por valor, si se declaran como ByRef serán por referencia.
La diferencia entre uno y otro método de paso de parámetros, es que en ByVal se envía una copia de la variable, y deesta manera si se efectúa un cambio en el procedimiento, solo tendrá efecto dentro del procedimiento o función, una vez que termine y finalice el mismo, la variable original pasará a valer el dato quetenía, es decir no se modifica
En los parámetros enviados por Referencia, lo que se hace es enviar un puntero de la variable original. Entonces, si en la función o procedimiento se cambia el valorde la variable, el cambio seguirá manteniéndose una vez que finalice la ejecución del procedimiento o función.
Ejemplo de envío de parámetros por Valor (ByVal)
Código de ejemplo
Private SubCommand1_Click ()
Dim Un_Valor As Long
Un_Valor = 100
'Se envía la variable por Valor (ByVal)
Call Sumar (Un_Valor)
'Muestra el valor que es 100, (no se modificó en la función Sumar)
MsgBox Un_ValorEnd Sub

Sub Sumar (ByVal Valor As Long)
'Modifica la variable
Valor = Valor + 100
End Sub

En el ejemplo anterior hay una Sub llamada Sumar que recibe como parámetro una variable enviada porvalor con ByVal (es decir es una copia de la variable original). al presionar el Commmand1.
Al entrar en la Sub Sumar, el dato se modifica (Valor = Valor + 100). Cuando finaliza el procedimientoSumar y retorna a la línea siguiente de la llamada a la Sub sumar, muestra mediante un MsgBox el valor de la misma, en este caso es 100, y NO 200 que es el cambio que tuvo dentro del procedimiento Sumar (Valor = Valor + 100 ).
Con esto queda visto que en realidad al enviarla como ByVal, se envía una copia de la variable original y cualquier cambio que se produzca, será solo en el ámbito del...
tracking img