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?
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.
Wenn die Deklaration in der Implementierung 1 innerhalb der Klasse und nicht in einer Unterklasse ist, ist der Bereich für beide Beispiele identisch.
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.
Tags und Links vb6