Zitat von
s-off:
Und wo ist der Vorteil von 'Free' gegenüber 'FreeAndNil'?
Fast gar nicht.
Eine Regel, die man im Kopf behalten kann.
- Nutze ich die Objektvariable nur einmal reicht ein Free.
Delphi-Quellcode:
procedure DoSomething();
var LObject: TSomeType;
begin
LObject := TSomeType.Create;
try
...
...
finally
LObject.Free;
end;
end;
- Nutze ich die Objectvariable mehrfach ist es sicherer, sie nach der Benutzung auf NIL zu setzen
Delphi-Quellcode:
procedure DoSomething();
var LObject: TSomeType;
i: Integer;
begin
for i := 0 to 1000 do
begin
LObject := TSomeType.Create;
try
...
...
finally
FreeAndNil(LObject);
end;
end;
LObject := TSomeType.Create;
try
...
...
finally
LObject.Free;
end;
end;