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.