![]() |
AW: Webinar FreeAndNil
ROFL...
Kaum hatte Jim McKeeth das Thema im MVP Channel gepostet, ging die Diskussion schon los... Keine Ahnung ob das Webinar jemanden etas bringt, aber wer sehen will, wie unterschiedlich die Meinungen unter den MVP's sind ist eingeladen... Wird sicherlich lustig... Grüsse Mavarik |
AW: Webinar FreeAndNil
Zitat:
|
AW: Webinar FreeAndNil
Zitat:
|
AW: Webinar FreeAndNil
Na ja dein Footer himitsu ... :-D
Wenn Delphianer wirklich so sind. Schade dass man Kollegen hat die keine Delphiander sind aber Sourcecode in Delphi machen :twisted: |
AW: Webinar FreeAndNil
Zitat:
Zitat:
|
AW: Webinar FreeAndNil
Zitat:
Ich finde, dass es sowohl Anwendungsfälle gibt, an denen FreeAndNil sehr viel Sinn macht, als auch solche, bei denen es keinen / wenig Sinn macht. |
AW: Webinar FreeAndNil
Zitat:
Es ist also eine Sünde einfach FreeAndNil zu verwenden anstatt ordentlich zu programmieren und sicherzustellen das man nicht auf Objektreferenzen zugreift deren Objekte schon freigegeben sind. So ganz sachte verstehen ich den Salat! Verwender von FAN sind also zu faul um ordentlich zu programmieren. Das ist jedenfalls die Meinung der FAN Gegner/Verweigerer. Das macht mich Sprachlos. FAN hat den Vorteil das ich gegenchecken kann ob das Objekt weg ist. Ich kann also Objekte freigeben, und deren Referenzzustand "freigegeben" als Schalter verwenden. Ich sehe mich dadurch nicht als Faul, sondern als Gewissenhaft an. |
AW: Webinar FreeAndNil
Nja, im Notfall kann man immer FreeAndNil machen, was nahezu nie verkehrt ist.
Während bei einem .Free das nötige Zurücksetzen der Variable eventuell fehlen könnte. (z.B. für nachfolgende if-Assigned) Und
Delphi-Quellcode:
könnte zwar richtig sein, aber wenn es im Free knallt, dann würde das NIL nicht mehr ausgeführt.
x.Free;
x := nil; Zu
Delphi-Quellcode:
hat man oft keine Lust, was man aber mit FreeAndNil (eigentlikch NilAndFree) viel "einfacher" haben würde.
try
x.Free; finally x := nil; end; Und über ein Property oder ein Function-Result zu Löschen, da geht nur Free. Für FreeAndNil müsste man es erst in eine Variable umkopieren. (aber nur sinnvoll, wenn sich das Objekt da drüben auch selbst deregistriert/entfernt) Krank / unverständlich empfinde ich aber, dass man Assigned bei Property/Result nicht direkt nutzen kann. Wieso eigentlich nicht? (ein <>NIL als Ersatz ginge zwar, aber ist schon bissl inkonsistent, wenn sonst überall anders mit Assigned) |
AW: Webinar FreeAndNil
Zitat:
|
AW: Webinar FreeAndNil
Von den ganzen Pro-Argumenten finde ich das Proaktiv-In-Der-Zukunft Argument eigentlich am Schönsten:
In einer Basis-Klasse, die mal abgeleitet werden könnte, hilft FAN im Destruktur den Zugriff auf interne Felder abzusichern, falls die Klasse zufällig mal abgeleitet wird und dabei jemand anderes diese falsch benutzt und versucht nach Destroy drauf zuzugreifen. So oder so ähnlich. Ist schön vorrausschauend gedacht, gefällt mir, aber ich fürchte es bleibt dabei: Man braucht es eigentlich nicht wirklich wenn man das Klassen-Design gut ausgelegt hat. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:26 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