Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

2 StringListen try finally richtig anwenden

  Alt 27. Jun 2016, 08:20
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?
Heiko
  Mit Zitat antworten Zitat