POR QUE EL ByVal, ByRef y el WidtEvents

Hola amigo experto
Por favor me podrías explicar el funcionamiento de estas 3 instrucciones
he leído sobre ello y no le encuentro la diferencia pero me han dicho que
son bien importantes sobre todo en el tema de las clases
Si yo tengo el siguiente procedimiento en un modulo standard
Public Sub Mensaje(cCad as String)
MsgBox cCad
End Sub
Esto me devuelve un messagebox con la cadena que escriba, bien y
si hago :
Public Sub Mensaje(ByVal cCad as String)
MsgBox cCad
End Sub
Me devuelve lo Mismo
I en el tema de clases, supongamos que tengo una clase llamada clsEmpleados
y luego en un formulario la voy a utilizar tendria que hacer:
Dim objCat as clsEntidad 'Declarar
Set objCat=New clsEntidad 'y luego instanciar
PERO TAMBIEN PODRIA DECLARAR ASI:
Dim WithEvents objCat as clsEntidad 'Declarar
Set objCat=New clsEntidad 'y luego instanciar
Yo veo que hace lo mismo
Por favor si pudieras explicarme sobre la diferencias de estos conceptos
gracias
SALUDOS PERÚ - LIMA [email protected]

1 respuesta

Respuesta
1
Lamento la tardanza pero diciembre y enero han sido una locura en la oficina.
Realmente no tendrías que preocuparte por esas 3 instrucciones.
Cuando estás trabajando con datos primitivos, pro defecto los parámetros se pasan por valor (se hace una copia de ellos para trabajarlos en el procedimiento), pero si lo obligas a pasarlos por referencia estás dándole permiso al procedimiento a que acceda a la parte de la memoria donde está el valor de la variable y hacer modificaciones, es decir, si pasas una variable primitiva por referencia al procedimiento y la modificas, el cambio pordrás verlo cuando salgas del procedimiento y veas que la variable ya cambio, y cuando la pasas por valor (que es por defecto) si cambias el valor de la variable dentro del procedimiento y sales, verás que la variable original no ha cambiado.
Y el widtEvents yo no lo ocupo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas