Einzelnen Beitrag anzeigen

Benmik

Registriert seit: 11. Apr 2009
542 Beiträge
 
Delphi 11 Alexandria
 
#1

Klassen: Clear -> Free -> Create?

  Alt 4. Okt 2020, 22:50
Ich habe eine Klasse mit ziemlich vielen Feldern, die ich bei einem Clear alle händisch zurücksetzen müsste.
Da liegt es nahe, einfach im Clear ein Free und danach ein Create zu schreiben.
Das Free klappt auch, aber wenn ich danach Self := TDingsbums.Create schreibe, dann meint der Compiler, "Self" würde nie benutzt.

Spaßeshalber habe ich mal versucht, eine Instanz einfach in einer ihrer Methoden freizugeben und wieder zu erzeugen. Also ungefähr so:
Delphi-Quellcode:
TCorona = class(TObject)
  procedure VirusBeißtZu;
end;

var Corona:TCorona;

...

procedure TCorona.VirusBeißtZu;
begin
  Corona.Free;
  Corona := TCorona.Create;
end;
Zu meinem Erstaunen scheint das zu funktionieren.

Was ist von alledem zu halten?
  Mit Zitat antworten Zitat