Du solltest aus dem var beim Parameter ein const machen, ...
Syntaktisch korrekt, aber ich würde dennoch empfehlen nicht CONS, sondern garnichts anzugeben.
* Ja, die Vairable selbst wird nicht geändert,
* aber der Inhalt schon.
Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(getSL.Text);
end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
var Temp := getSL.Text;
showmessage(Temp.Text);
Temp.Fee;
end;
// aber eigentlich
begin
var Temp := getSL.Text;
try
showmessage(Temp.Text);
finally
Temp.Fee;
end;
end;
Was erstellt wird, muß auch wieder freigegeben werden, denn das "Objekt" macht es nicht von selbst.
ODER
Delphi-Quellcode:
// FSL als Variable/Feld in der übergeordneten Klasse, also hier die TForm1
function TForm1.getSL: TStringList;
begin
if not Assigned(FSL) then
FSL := TStringList.Create; // oder im OnCreate UND im OnDestroy sowieso das FSL.Free;
FSL.Clear;
FSL.Add('haha');
FSL.Add('hehe');
FSL.Add('hihi');
FSL.Add('hoho');
FSL.Add('huhu');
Result := FSL;
end;
* hier wird Extern nicht freigegeben
* gleichzeitig, bzw. kurz nacheinander aufgerufen, muß man bedenken, dass das Result des vorherigen Aufrufs sich auch mit verändert (weil selbes Objekt)
ODER z.B. irgendwas mit einem Interface
ODER
function TForm1.getSL: TArray<string>;
ODER ...