ByVal y ByRef

Iniciado por NaK-32, 26 Febrero 2011, 15:12 PM

0 Miembros y 1 Visitante están viendo este tema.

NaK-32

Buenas a todos.
Bueno, estoy estudiando vb6 y estoy con ByVal y ByRef, y no entiendo nada de nada... de veras.
He buscado por google y no me entero de nada. ¿Alguien me podría echar una mano para entender estos conceptos? Ya que veo que son bastante importantes...

Muchísimas gracias de antemano.

Nak.
"Hay dos cosas infinitas: el Universo, y la estupidez humana, y de lo primero no estoy tan seguro..." - Albert Einstein.

¿Y qué pasa con los números?

Sanlegas

bien haber si te sirve un poco mi explicación.

ByVal = Por Valor
ByRef = Por Referencia

Por valor es cuando se llama a la función y al pasar este parametro/variable se copia un nuevo espacio en memoria con el mismo valor de la variable que usaste, asi si modificas dicha variable dentro de la función esta no cambiara su valor original.
Por referencia es cuando se llama a la función pero con el mismo puntero de la variable que usaste, asi cuando modificas la variable dentro de la función esta cambiara su valor en la variable original.

Un ejemplo seria:
Código (vb) [Seleccionar]
Private Sub Form_Load()
Dim A As String
A = "Hola!!!"
Call MiFuncionPorValor(A)
MsgBox "El contenido de la variable ahora es: " & A
Call MiFuncionPorReferencia(A)
MsgBox "El contenido de la variable ahora es: " & A
End Sub
Public Function MiFuncionPorValor(ByVal MiVariable As String)
    MsgBox "El contenido de la variable es: " & MiVariable, vbInformation
    MiVariable = vbNull
End Function
Public Function MiFuncionPorReferencia(ByRef MiVariable As String)
    MsgBox "El contenido de la variable es: " & MiVariable, vbInformation
    MiVariable = vbNullString
End Function



GhostLT

There is some fiction in you truth, and some truth in you fiction

BlackZeroX

byval --> realisa una copia de lo que le pases
byref --> trabaja directamente sobre el original por ende lo que le hagas a la variable surtira efectos sobre la original que pasaste por parametro!¡.

Dulces Lunas!¡.
The Dark Shadow is my passion.

NaK-32

okk, muchas gracias a todos gente, ya lo entendí :)

Así es un gusto estudiar vb6
"Hay dos cosas infinitas: el Universo, y la estupidez humana, y de lo primero no estoy tan seguro..." - Albert Einstein.

¿Y qué pasa con los números?