arrays - 将动态数组类型分配给 TArray<T> 变量

标签 arrays delphi delphi-xe7

我正在尝试将动态数组类型分配给 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/

相关文章:

C# 递归步骤方法

delphi - 如何将空终止字符串转换为 AnsiString?

php - AES 加密/解密 Delphi 和 PHP

delphi - 我可以使用 generics.defaults 比较 Real48 吗?

c++ - 在 C++ 中拆分数组

javascript - 如何在 jQuery 中使用 $.makeArray()

php - 从多维数组中获取结果,在 php 中没有重复结果

delphi - 通过 访问 Delphi 记录字段。或^

mysql - 为什么会出现列表索引越界 (1) 错误?

delphi - 从代码添加到 TGridPanel 时如何在两个百分比行之间有一个绝对行?