我正在尝试将动态数组类型分配给 TArray<string>
变量
type
TMyStringArray = array of string;
function Test() : TMyStringArray;
begin
...
end;
...
var
MyArray : TArray<string>;
begin
MyArray := Test();
end;
编译时,Delphi 说:
[dcc32 Error] Unit1.pas(39): E2010 Incompatible types: 'System.TArray' and 'TMyStringArray'
最佳答案
我只是通过使用类型转换来完成它,它似乎有效。
我很高兴知道这样做可能会遇到一些问题
type
TMyStringArray = array of string;
function Test() : TMyStringArray;
begin
SetLength(Result, 2);
Result[0] := 'Hello';
Result[1] := 'World';
end;
procedure TForm1.FormCreate(Sender: TObject);
var
MyArray : TArray<string>;
i : integer;
begin
MyArray := TArray<string>(Test());
i := 0;
while(i < Length(MyArray)) do
begin
ShowMessage(MyArray[i]);
Inc(i);
end;
end;
关于arrays - 将动态数组类型分配给 TArray<T> 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60334402/