Hallo,
Arrays welche per Wert Parameter übergeben werden, verhalten sich ja trotzdem wie var Parameter. (dh es wird keine Kopie erzeugt)
Wird bei offenen Arrays eine Kopie erzeugt? Muss ich evtl explizit das offene Array als Var Parameter übergeben um keine Kopie zu bekommen?
Mir leuchtet nicht ein, warum ich meinen Array nicht an SetLength übergeben kann...
Mir ist bewusst, das ich hier kein
Array-Parameter habe sondern ein
Offenes Array-Parameter, aber was kann ich machen,
ohne mir einen Typen des Arrays zu deklarieren.
Delphi-Quellcode:
TMyClass = class
MyArray : array of TIrgendwas;
begin
DoSomething(MyArray);
SetLength(MyArray, 10); // Garkein Problem
end;
DOSomething(ParaArray : array of TIrgendwas)
begin
SetLength(ParaArray, 1); // Inkompatible Typen
end;
Wäre super wenn es genau dafür eine Lösung gibt, sonst könnte es kompliziert werden alles auf
TMyArray : array of TIrgenswas
umzustellen...
Grüße
edit:
Wo ich schon mal dabei bin, mir erschließt sich nicht der Sinn, warum wir 2 Array Typen brauchen...
Delphi-Quellcode:
// Warum ist:
TMyArray = array of TObject;
var
MyArray : TMyArray
// anders als
var
MyArray : array of TObject