Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Warnung W1036 Variable nicht initialisiert bei Verwendung FreeAndNil()

  Alt 21. Nov 2014, 14:05
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."
  Mit Zitat antworten Zitat