AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FreeAndNil vs TObject.free

Ein Thema von DataCool · begonnen am 4. Dez 2003 · letzter Beitrag vom 5. Dez 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#11

Re: FreeAndNil vs TObject.free

  Alt 4. Dez 2003, 16:31
Da bin ich auch gerade bei mir das anzugewöhnen
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Bernd Ua

Registriert seit: 10. Nov 2003
Ort: Lindhorst
87 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: FreeAndNil vs TObject.free

  Alt 5. Dez 2003, 07:43
Hi,

Zitat:
...Java oder C# vermieden worden
@choose : Na dann greif mal im Finalize einer C#-Klasse auf Objektreferenzen zu,
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
Bernd Ua
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

Re: FreeAndNil vs TObject.free

  Alt 5. Dez 2003, 08:00
Aaah, genau da bin ich gerade.
Code:
      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;
        }
      }
Der GarbageCollector gibt doch das Objekt für mich wieder frei oder? OK ist etwas offtopic.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Bernd Ua

Registriert seit: 10. Nov 2003
Ort: Lindhorst
87 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: FreeAndNil vs TObject.free

  Alt 5. Dez 2003, 08:15
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
Bernd Ua
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#15

Re: FreeAndNil vs TObject.free

  Alt 5. Dez 2003, 08:37
Zitat von Bernd Ua:
[...]greif mal im Finalize einer C#-Klasse auf Objektreferenzen zu [...]. Wenn der Garbage Collector die referenzierten Klassen zufällig vorher entsorgt hat, hast Du exakt diesen Zwischenzustand
Erwischt

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...
gruß, choose
  Mit Zitat antworten Zitat
Bernd Ua

Registriert seit: 10. Nov 2003
Ort: Lindhorst
87 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: FreeAndNil vs TObject.free

  Alt 5. Dez 2003, 08:49
Zitat:
Auch in Java gibt es mit anonymen und nachgeladenen Klassen seine Tücken und...
Tröstlich zu hören
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
Bernd Ua
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

Re: FreeAndNil vs TObject.free

  Alt 5. Dez 2003, 09:11
Zitat von Bernd Ua:
Programmieren ohne Pointer ist wie safer sex - fühlt sich irgendwie doof an
Ich schmeiß mich weg.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: FreeAndNil vs TObject.free

  Alt 5. Dez 2003, 13:47
Zitat:
Programmieren ohne Pointer ist wie safer sex - fühlt sich irgendwie doof an.
Sehr geil!!! Jetzt muss ich nurnoch gucken, wie ich mich wieder "ent-kringel"... . Macht sich heut abend beim Italiener nicht so gut *g*.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz