Hallo,
irgendwann hatte ich hier mal gelesen, dass der folgende Code richtig ist
Delphi-Quellcode:
var
SL1, SL2: TStringList;
begin
SL1 := nil;
SL2 := nil;
try
SL1 := TStringList.Create;
SL2 := TStringList.Create;
finally
FreeAndNil(SL1);
FreeAndNil(SL2);
end;
Grund: Wenn hinter
SL1 := TStringList.Create; was passiert, werden beide StringListen korrekt freigegeben ,
genauer SL1 wird freigegeben, SL2 ist ja noch nil;
Jetzt habe ich den Code aber mal durch den PAL (Pascal Analyzer) gejagt und der sagt, dass das
SL1 := nil;
SL2 := nil;
unnützer Code ist.
Vorgeschlagen wird
Delphi-Quellcode:
var
SL1, SL2: TStringList;
begin
SL1 := TStringList.Create;
SL2 := TStringList.Create;
try
finally
SL.Free);
SL2.Free;
end;
Was meint ihr?