Wann wird diese VB6-Member-Variable zerstört?

8

Angenommen, ich habe ein Klassenmodul clsMyClass mit einem Objekt als Membervariable. Im Folgenden finden Sie zwei vollständige Implementierungen dieser sehr einfachen Klasse.

Implementierung 1:

%Vor%

Implementierung 2:

%Vor%

Gibt es einen funktionalen Unterschied zwischen diesen beiden? Insbesondere, ist die Lebensdauer von oObj gleich?

    
Matt Dillard 17.09.2008, 18:54
quelle

3 Antworten

5

In Implementierung 1 wird das clsObject nicht instanziiert, bis es verwendet wird. Wenn es nie verwendet wird, wird das clsObject.Class_Initialize-Ereignis nie ausgelöst.

In Implementierung 2 wird die clsObject-Instanz zur gleichen Zeit wie die clsMyClass erstellt. Die clsObject.Class_Initialize wird immer ausgeführt, wenn clsMyClass erstellt wird.

    
Darrel Miller 17.09.2008, 19:11
quelle
0

Wenn die Deklaration in der Implementierung 1 innerhalb der Klasse und nicht in einer Unterklasse ist, ist der Bereich für beide Beispiele identisch.

    
Mitchel Sellers 17.09.2008 18:56
quelle
0

Die Objektvariable wird zerstört, wenn die Garbage Collection feststellt, dass keine Referenzen mehr auf das Objekt vorhanden sind. Wenn Sie in Ihren beiden Beispielen annehmen, dass der Bereich von clsObject gleich ist, gibt es keinen Unterschied, wenn Ihr Objekt zerstört wird.

    
Rick 17.09.2008 19:09
quelle

Tags und Links