meineKlasse von innen schließen

26/01/2010 - 00:44 von Volker Alkemper | Report spam
Ich programmiere in Word 2007 VBA.
Wie fange ich es an, wenn ich eine Instanz einer Klasse von innen schließen
möchte?
Ich meine Folgendes:

Sub meinModul()
dim mK as meineKlasse
set mK = new meineKlasse
'...(Operationen mit mK)
'Und jetzt kommt es:
mk.close
End sub

'Klassenmodul meineKlasse
public sub close()
set me = nothing 'Geht nicht
me.close 'Geht auch nicht, aber was sonst?
End sub

Ich kann innerhalb der Klasse alle Variablen und Verweise auf empty oder
nothing setzen, aber damit hat mk immer noch einen Verweis auf eine Instanz.
Ich kann im Modul 'set mk = nothing' setzen, aber nicht in der Klasse.
 

Lesen sie die antworten

#1 Thomas Gahler
26/01/2010 - 08:40 | Warnen spam
Hallo Volker


Ich kann innerhalb der Klasse alle Variablen und Verweise auf empty oder
nothing setzen, aber damit hat mk immer noch einen Verweis auf eine
Instanz.
Ich kann im Modul 'set mk = nothing' setzen, aber nicht in der Klasse.


Ich bin zwar kein grosser Klassenprogrammierer, aber eine Klasse in sich
selber schliessen habe ich noch nie gehört.

Irgendwann in deinem Code instanzierst du deine Klasse. Was spricht
dagegeben, dass du die Klasse irgendwann in deinem Code wieder terminierst?
Die Variablen innerhalb der Klasse musst du nihct leeren, die werden alle
freigegeben sobald du die Klasse terminierst (set mK = nothing). Deine
Klasse terminiert sich auch selber, wenn du mit deinem Code ausserhalb deren
Lebensdauer/Sichtbarkeit kommst (Bsp. Du erstellst sie Klasse nur innerhalb
einer Sub, dann ist sie am Ende der Sub weg auch wenn du dass Notzhing nicht
gesetzt hast)


Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows Vista (SP2), Office 2007 (SP2)

Ähnliche fragen