A la hora de pasar parámetros, al igual que en la amyoría de lenguajes visual nos permite pasarlos de dos formas, por valor o por referencia
Por referencia
variable1-> reserva un espacio de memoria
variable2-> le asignamos el valor de variable1
variable2 = variable1
Ahora mismo, en memoria sólo tendríamos un valor, al que apuntan ambas variables
Por valor
Si lo hacemos por valor, aunque sea el mismo, tendremos dos objetos distintos
Dim i as integer=15
j= i
console.writeline("i={0},j={1}",i,j)
i=28 ' ¿cambiará el valor de j, si es por valor, no si es por referencia, si?
En este caso es por valor por lo que j seguirá valiendo 15 a pesar de que i ha cambiado su valor
veamos otro ejemplo, creamos una clase y declaramos una variable pública
class prueba
public nombre as string
end class
En el submain ponemos
Dim a As prueba : a = New prueba()
a.nombre = "hola"
dim b as prueba
b=a
console.writeline("a={0},b={1}",a.nombre,b.nombre)
console.readline()
a.nombre="adios"
En este caso se ha pasado por referencia, ambas apuntarán ahora a “adios”