Esta lección es parte de un tutorial en curso. La primera parte está aquí: Crear tus propios subs en VB .NET
Cuando pasas los argumentos a Subs y Function puedes hacerlo ya sea por valor o por referencia. Por Valor se acorta a Por Valor y Por Referencia se acorta a ByRef . ByVal significa que estás pasando una copia de una variable a tu Subrutina. Puede hacer cambios en la copia y el original no será alterado. Visual Studio te oculta ByVal la mayor parte del tiempo. Está oculto porque ByVal es el valor por defecto cuando pasas variables a una función o a un Sub.
ByRef es la alternativa. Es la abreviatura de By Reference. Esto significa que no está entregando una copia de la variable original sino señalando a la variable original. Veamos un ejemplo de codificación.
Añade un nuevo botón al formulario que creaste en la sección anterior. Haga doble clic el botón y añadir el siguiente código:
Número Dim1 como entero
Número1 = 10
Llamar IncrementarVariable(Número1)
MessageBox.Show(Number1)
Obtendrás una línea ondulada debajo de IncrementVariable(Número1) . Para deshacerse de ella, agregue la siguiente subrutina a su código:
Privado Sub IncrementoVariable(Número de valor1 como entero)
Número1 = Número1 + 1
End Sub
Cuando termines, ejecuta el programa y haz clic en tu nuevo botón. ¿Qué respuesta fue mostrado en el buzón de mensajes?
Deberían haber sido 10. Pero espera. ¿No incrementamos la variable Número 1 con esta línea?
Número1 = Número1 + 1
Así que el Número 1 empezó teniendo un valor de 10. Después de que nuestro submarino fue llamado, añadimos 1 a Número 1. Así que deberíamos tener el 11 en el buzón de mensajes, ¿no?
La razón por la que el Número 1 no se incrementó fue porque especificamos ByVal en el Sub:
Número ByVal1 Como Entero
Esto significa que sólo se pasó por alto una copia de la variable original. Cuando incrementamos la variable, sólo la copia se añadió 1. El original se quedó lo mismo – 10.
Cambie el parámetro a esto:
Número de referencia1 como entero
Vuelva a ejecutar su programa. Haga clic en el botón y vea lo que sucede.
Esta vez, debería ver 11 en el cuadro de mensajes. La variable tiene ahora se ha incrementado!
Se incrementó porque usamos ByRef. Estamos haciendo referencia a la variable original. Así que cuando le añadimos 1, el original cambiará.
El valor por defecto es ByVal – que significa una copia de la variable original. Si necesitas referirte a la variable original, usa ByRef .
En la siguiente parte, veremos las funciones en VB .NET
Aprende a crear una función en VB .NET — –;
Espero que te haya sido de ayuda!