Einzelnen Beitrag anzeigen

Hobbycoder

Registriert seit: 22. Feb 2017
930 Beiträge
 
#13

AW: Klasse in einer Klasse Destruktor

  Alt 7. Mai 2020, 13:38
Ganz genau. Der Destruktor wird auch immer ausgeführt, auch wenn der Konstruktor scheiterte, z.B. eine Exception auftritt.
Ich habe aber gerade gesehen, dass mein destructor nicht (explicit) ? aufgerufen wird, wenn ich nur Foo.Free; habe. Erst wenn ich ein override; hinter dem Destructor habe, wird dieser mit Free aufgerufen.
Ich mach das immer so, dass ich bereits beim erstellen der Destructor-Methode mit dem Code-Insight arbeite. Einfach zwischen TFoo=class und end; STRG+Leertaste, Exec eingeben, dann steht das schon Execute, und mit Enter bestätigen. Code-Insight erstellt die Destuctor-Methode gleich korrekt und legt auch den Public-Abschnitt gleich mit an, wenn nötig.
Spart Zeit und man kann das unscheinbare override nicht vergessen (passierte mir früher regelmäßig).

Übrigens: mit Shift+CTRL+C wird werden auch die Methoden gleich im Implementation-Abschnitt erstellt.

Leider klappt das mit dem Constructor nicht ganz so komfortabel.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.

Geändert von Hobbycoder ( 7. Mai 2020 um 13:41 Uhr)
  Mit Zitat antworten Zitat