Wieso erklärt das #4 nicht?
Das einzige was in meinen Augen falsch ist, ist dass bei:
Delphi-Quellcode:
procedure TFormTest.Button2Click(Sender: TObject);
var
StringList : TStringList;
i : integer;
begin
i := 1;
if i=0 then
StringList := TStringList.Create;
StringList.Add('Rumms');
FreeAndNil(StringList);
end;
keine Warnung kommt. Wenn das FreeAndNil vor dem Add stehen würde und keine Warnung käme dann kann ich das wie oben schon gesagt nachvollziehen. Aber so müsste Delphi erkennen dass es beim .Add möglicherweise knallen kann.
@himitsu: Bei var MUSS gar nichts
Technisch können var und out gleichbedeutend benutzt werden meiner Erfahrung nach. Und weil es MÖGLICH ist als var-Parameter ein nil/uninitialisiertes Objekt zu übergeben und ein inititalisiertes zurückzubekommen ist die nicht vorhandene Warnung gerechtfertigt.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."