![]() |
Re: FreeAndNil vs TObject.free
Da bin ich auch gerade bei mir das anzugewöhnen :mrgreen:
|
Re: FreeAndNil vs TObject.free
Hi,
Zitat:
die diese Klasse hält ( bzw hielt). Wenn der Garbage Collector die referenzierten Klassen zufällig vorher entsorgt hat , hast Du exakt diesen Zwischenzustand Grüsse Bernd |
Re: FreeAndNil vs TObject.free
Aaah, genau da bin ich gerade.
Code:
Der GarbageCollector gibt doch das Objekt für mich wieder frei oder? OK ist etwas offtopic.
private void btnChooseFolder_Click(object sender, System.EventArgs e)
{ FolderBrowserDialog fbd; fbd = new FolderBrowserDialog(); fbd.Description = "Wählen sie ein Zielverzeichnis für die Dateien aus."; if (fbd.ShowDialog() == DialogResult.OK) { txtFolder.Text = fbd.SelectedPath; } } |
Re: FreeAndNil vs TObject.free
Hallo Luckie
idR gibt der Garbage Collector die Klasse irgendwann wieder frei. Klassen, die deterministisch freizugebende Ressourcen verwenden und bei denen man selber explizit Close bzw Dispose aufrufen sollte, implementieren (bzw sollten) die Schnittstelle IDisposable implementieren. (Dispose/bzw Close geben nur die Ressourcen frei, nicht das objekt selbst). Um den Bogen zum Thema des Forums (Delphi) wieder zu kriegen - für eine Delphi Klasse in Delphi für .NET, in der Destruktor korrekt überschrieben ist baut der Compiler automatisch nach aussen das Interface IDisposable ein ( geht auch schon mit dem Preview) und Destroy wird quasi zur Implementierung von Dispose ( was deutlich anders ist als in C# wo der Pseudodestruktor ~Klassenname in Wirklichkeit zu Finalize mit automatischem try..finally mutiert) Bernd |
Re: FreeAndNil vs TObject.free
Zitat:
Auch in Java gibt es mit anonymen und nachgeladenen Klassen seine Tücken und in Smalltalk purzelt's mitunter messageNotUnderstood: Nachrichten, wenn man dynamische Proxy-Klassen implementiert... Der "Anwendungsentwickler" sollte diese Dinge jedoch nach Möglichkeit nicht sehen, so dass er, im Gegensatz zu C/C++, Delphi & Co. vor "Flüchtigkeitsfehlern" bewart wird (sinnvolle Ausnahmen gibt es immer s.o.). Solange ich deshalb ohne SmartPointer in C++ oder ohne IInterface-Referenzzählern in Delphi arbeite, verwende ich immer Konstrukte, die eine Referenz nullen, damit auch meine Umwelt (drei Zeilen später) weiß, was ich meinte... |
Re: FreeAndNil vs TObject.free
Zitat:
dann kann ich mich ja richtig freuen, das die DB2 Oberfläche(Java) beim Beenden "nur" Javalang:NullPointerExeceptions wirft und nicht Schutzverletzungen <bg> Bernd Programmieren ohne Pointer ist wie safer sex - fühlt sich irgendwie doof an :roll: |
Re: FreeAndNil vs TObject.free
Zitat:
|
Re: FreeAndNil vs TObject.free
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz