将动态数组类型分配给 TArray<T> 变量
Assign a dynamic array type to a TArray<T> variable
我正在尝试将动态数组类型分配给 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;
我正在尝试将动态数组类型分配给 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;