una - ¿Cuándo se destruye esta variable miembro VB6?
tipos de variables en visual basic (3)
En la implementación 1, clsObject no se creará una instancia hasta que se use. Si nunca se usa, el evento clsObject.Class_Initialize nunca se activará.
En la implementación 2, la instancia de clsObject se creará al mismo tiempo que se crea una instancia de clsMyClass. El clsObject.Class_Initialize siempre se ejecutará si se crea clsMyClass.
Supongamos que tengo un módulo de clase clsMyClass
con un objeto como variable miembro. A continuación se enumeran dos implementaciones completas de esta clase muy simple.
Implementación 1:
Dim oObj As New clsObject
Implementación 2:
Dim oObj As clsObject
Private Sub Class_Initialize()
Set oObj = New clsObject
End Sub
Private Sub Class_Terminate()
Set oObj = Nothing
End Sub
¿Hay alguna diferencia funcional entre estos dos? En particular, ¿la vida de oObj
la misma?
La variable de objeto se destruirá siempre que la recolección de basura determine que no hay más referencias a dicho objeto. Entonces en sus dos ejemplos, suponiendo que el alcance de clsObject es el mismo, no hay diferencia en cuanto a cuándo se destruirá su objeto.
Si en la implementación 1 la declaración está dentro de la clase y no en un sub, sí, el alcance es el mismo para ambos ejemplos.