Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Verständnisfrage Assigned vs nil (https://www.delphipraxis.net/202710-verstaendnisfrage-assigned-vs-nil.html)

p80286 3. Dez 2019 17:54

AW: Verständnisfrage Assigned vs nil
 
Zitat:

Zitat von Rollo62 (Beitrag 1452623)
Also ich habe eine einfache Regel: IMMER Assigned() benutzen ...

Wozu = nil benutzen ? Das bringt doch nur zusätzliche Fehlermöglichkeiten rein.

Ich sehe das ähnlich.

z.B.
Delphi-Quellcode:
var
  MyFileList : Tstringlist;
....

if assigned(Myfilelist) then
  Myfilelist.Clear
else
  MyFilelist.create;
// mach irgendwas

MyFilelist.......// irgendwas oder auch nichts
Würde ich auf NIL testen müßte beim ersten Eintritt sichergestellt sein daß eine Initialisierung mit NIL vorgenommen wurde. Ebenso müßte immer ein .FreeandNil durchgeführt werden, denn ein einfaches .Free ist u.U. zu wenig.

Gruß
K-H

Nachtrag:
Ich weiß daß es einen Beitrag gab der begründete warum FreeandNil nicht optimal ist. Aber bisher hab ich nur die gegenteilige Aussage gefunden und einmal "schon wieder FreeandNil" Augenrollen.

Fritzew 3. Dez 2019 18:57

AW: Verständnisfrage Assigned vs nil
 
Zitat:

Zitat von p80286 (Beitrag 1452689)

Ich sehe das ähnlich.

z.B.
Delphi-Quellcode:
var
  MyFileList : Tstringlist;
....

if assigned(Myfilelist) then
  Myfilelist.Clear
else
  MyFilelist.create;
// mach irgendwas

MyFilelist.......// irgendwas oder auch nichts
Würde ich auf NIL testen müßte beim ersten Eintritt sichergestellt sein daß eine Initialisierung mit NIL vorgenommen wurde. Ebenso müßte immer ein .FreeandNil durchgeführt werden, denn ein einfaches .Free ist u.U. zu wenig.

Gruß
K-H

Äh das must Du jetzt erläutern.....

Zitat:

Würde ich auf NIL testen
Delphi-Quellcode:
if assigned(Myfilelist) then
ist genau das selbe wie
Delphi-Quellcode:
if Myfilelist<>nil then
und wie soll assigned helfen bei FreeAndNil und .Free? Das eine hat doch mit dem anderen nichts zu tun?

Uwe Raabe 3. Dez 2019 20:29

AW: Verständnisfrage Assigned vs nil
 
Folgender Code:
Delphi-Quellcode:
var
  instance: TObject;
begin
  if Assigned(instance) then;
  if instance <> nil then;
end;
ergibt compiliert (ohne das Lead-In/Out der Methode):
Delphi-Quellcode:
Unit475.pas.37: if Assigned(instance) then;
005FD1D0 837DF800         cmp dword ptr [ebp-$08],$00

Unit475.pas.38: if instance <> nil then;
005FD1D4 837DF800         cmp dword ptr [ebp-$08],$00

p80286 4. Dez 2019 12:32

AW: Verständnisfrage Assigned vs nil
 
Ich muß Abbitte leisten:stupid:
nach einem
Delphi-Quellcode:
liste.Free
ist ein
Delphi-Quellcode:
Assigned(liste
) true und ein
Delphi-Quellcode:
liste=NIL
natürlich false.

Dementsprechend ist ein .FreeandNil (falls anwendbar) einem .Free vorzuziehen falls die Möglichkeit besteht, das das Objekt noch einmal genutzt wird.

Gruß
K-H

himitsu 5. Dez 2019 11:17

AW: Verständnisfrage Assigned vs nil
 
Zitat:

Delphi-Quellcode:
else
  MyFilelist.create;

*peng*

TiGü 5. Dez 2019 11:36

AW: Verständnisfrage Assigned vs nil
 
Zitat:

Zitat von himitsu (Beitrag 1452796)
Zitat:

Delphi-Quellcode:
else
  MyFilelist.create;

*peng*

Feuer und Mistgabeln! :warn:

Rollo62 20. Apr 2021 12:11

AW: Verständnisfrage Assigned vs nil
 
Ich kanns mir nicht verkneifen dieses alte Thema nochmal hochzuholen.
Weil es dazu hier eine sehr schöne und komplette Beschreibung gibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 Uhr.
Seite 4 von 4   « Erste     234   

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