Einzelnen Beitrag anzeigen

r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#13

Re: Wann Destruktor-Aufruf nötig?

  Alt 28. Okt 2006, 11:07
Zitat von Cöster:
Nun hab ich das Problem, dass beim Zurücksetzen der Eigenschaften einige Instanzen bereits zerstört sind, andere nicht. Dann funktioniert eine Methode wie Clear natürlich nicht.
Mach mal n Beispiel. Weiß nicht so ganz, wie du das meinst...

Zitat:
Sollte ich dann doch alle Objekte wieder neu erstellen? Hab ich Beitrag #3 richtig verstanden, dass ich vor dem erneuten Create nicht erst Destroy aufzurufen brauche?
Ähm... bitte nicht zum Eigenschaften zurücksetzen Create aufrufen. Schreib dir lieber ne Methode Reset oder sowas... Warum? Manchmal geht das gut, jo. Wenn aber sowas im Konstruktor steht, produzierst du Speicherlöcher:
Delphi-Quellcode:
constructor TTest.Create;
begin
  inherited Create;
  FFeld := wert;
  ...
  FStringList := TStringList.Create; // <--
  ...
end;
Warum sollte man nun trotzdem Speicher freigeben, auch, wenn der Speichermanager hinterher wieder aufräumt? Ganz einfach: Du kippst doch auch nicht deinen Mülleimer aus dem Fenster, nur, weil du weißt, dass irgendwann jemand kommt, der das aufräumt... Es ist einfach schlechter Programmierstil.

Unter .NET is das was anderes: Da is die Putzfrau schon bestellt um nach der virtuellen Party die verloren gegangenen Bits wieder zusammenzukehren...

mfg

Chriostian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat