Warum kann ich kein beliebiges String-Array zurückgeben?
Der Compiler ermöglicht mir Folgendes:
procedure MyProc(const ADynData: array of string);
oder
procedure MyProc(const ADynData: TStringDynArray);
und übergebe beliebige Daten wie folgt:
MyProc(['Data1', 'Data2']);
Allerdings nicht zulassen
function MyFunc: TStringDynArray;
....
function MyFunc: TStringDynArray;
begin
Result := ['Data1', 'Data2'];
end;
oder
function MyFunc: TStringDynArray;
const
CDynData: array[0..1] of string = ('Data1', 'Data2');
begin
Result := CDynData;
end;
Warum ist das? Ist das nichttechnisch das gleiche?
Was ist für diese speziellen Szenarien die empfohlene (und effizienteste) Methode, um ein beliebiges Array von Zeichenfolgen zurückzugeben?