tengo esta duda e estado leyendo sobre ByVal ByRef, pero no entiendo osea no entiendo no creo que is pero no me queda claro lo que realmente hace el ByVal?
hace por ejemplo que cuando le pase un daot a un argumento y el argumento tenga el ByVal los datos no puedan ser cambiados y alguien me daria un corto ejemplo?
si no es molestia! :P
Gracias
google no muerde:
http://www.google.com.ar/search?q=byval&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-ES:official&client=firefox-a (http://www.google.com.ar/search?q=byval&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-ES:official&client=firefox-a)
saludos.
Pero si tu mismo lo dices, utilizas ByVal para pasar un obeto como valor y ByRef para pasarlo como referencia
mira este ejemplo:
Private Sub Form_Load()
I = 3
MsgBox "Valor Inicial de I --> " & I
MsgBox MsnByRef(I) 'Pasandolo como referencia
'MsgBox MsnByVal(I) 'Pasandolo como valor
MsgBox "Valor final de I --> " & I
End Sub
Private Function MsnByRef(ByRef A As Byte) As Byte
A = A + 3
MsnByRef = A
End Function
Private Function MsnByVal(ByVal A As Byte) As Byte
A = A + 3
MsnByVal = A
End Function
Cuando lo pasas como referenca afectas a ese objeto desde la rutina, eso quiere decir, que si I valia 3, será afectada, aumentando su valor. Con ByVal eso NO sucede.
Serás tu de acuerdo a lo que quieras hacer, quien decida cual usar, pero es buena costumbre especificar como se le pasa el parametro a la rutina.
Cita de: cΔssiΔnі en 29 Junio 2008, 05:06 AM
Pero si tu mismo lo dices, utilizas ByVal para pasar un obeto como valor y ByRef para pasarlo como referencia
mira este ejemplo:
Private Sub Form_Load()
I = 3
MsgBox "Valor Inicial de I --> " & I
MsgBox MsnByRef(I) 'Pasandolo como referencia
'MsgBox MsnByVal(I) 'Pasandolo como valor
MsgBox "Valor final de I --> " & I
End Sub
Private Function MsnByRef(ByRef A As Byte) As Byte
A = A + 3
MsnByRef = A
End Function
Private Function MsnByVal(ByVal A As Byte) As Byte
A = A + 3
MsnByVal = A
End Function
Cuando lo pasas como referenca afectas a ese objeto desde la rutina, eso quiere decir, que si I valia 3, será afectada, aumentando su valor. Con ByVal eso NO sucede.
Serás tu de acuerdo a lo que quieras hacer, quien decida cual usar, pero es buena costumbre especificar como se le pasa el parametro a la rutina.
por favor declara las variables!
Para un ejemplo como este no hace falta, eso se sobre entiende, yo acostumbro a usar el "Option Explicit" así que te imaginaras que siempre declaro...
Usen delphi/pascal y puaaaa leesto!!!!¡¡¡