Niemand hat hier gesagt, um welche Delphiversion es geht.
Ursprünglich konnte man Array-Deklarationen nur direkt an ein OpenArray übergeben, also wo der Parameter direkt als
array of ...
deklariert wurde.
Allem Anderen konnte man ausschließlich Variablen/Konstanten (und Property, sowie Function-Results) genau dieses Typs übergeben.
Auch wenn sich da in den letzten Jahren / Delphiversionen schon so einiges getan hatte und man nun auch Variablen direkt solche Array via [...] übergeben kann,
ist der Compiler manchmal echt saudämlich.
Neuerdings geht es "eigentlich" auch direkt an dynamische Array-Konstanten, aber ... siehe unten der erste Link.
Delphi-Quellcode:
type TAbcPairArray = TArray<TArray<string>>;
procedure Test(const slValues : TAbcPairArray);
type TAbcPair = TArray<string>;
procedure Test(const slValues : TArray<TAbcPair>);
procedure Test(const slValues : TArray<TArray<string>>);
procedure Test(const slValues : array of TArray<string>); // OpenArray mit Array-Typ
procedure Test(const slValues : array of array of string); // OpenArray
PS: auch noch bissl was zu Arrays:
https://embt.atlassian.net/servicede...tal/1/RSS-1691
https://quality.embarcadero.com/browse/RSP-42255
https://quality.embarcadero.com/browse/RSP-39686