Delphi 属性设置程序可以使用开放数组参数吗?

Delphi 属性设置程序可以使用开放数组参数吗?,delphi,Delphi,文档说动态数组可以使用开放数组参数传递到函数/过程中 例如,以下工作,按照文件 type TAInteger = array of Integer; function Work(const A: array of Integer): Integer; begin Result := Length(A); end; 但是,下面的代码抱怨E2008不兼容类型: type TTest = class private procedure SetIntegerArray(con

文档说动态数组可以使用开放数组参数传递到函数/过程中

例如,以下工作,按照文件

type
  TAInteger = array of Integer;

function Work(const A: array of Integer): Integer;
begin
  Result := Length(A);
end;
但是,下面的代码抱怨E2008不兼容类型:

type
  TTest = class
  private
    procedure SetIntegerArray(const Value: array of Integer);
  published
    property Value: TAInteger write SetIntegerArray;
  end;
我很困惑为什么会出现“不兼容类型”错误,以及a是否可以使用开放数组参数

属性设置程序可以使用开放数组参数吗

没有

包含新属性值的参数的类型必须与属性的类型兼容。打开的数组不是类型。您的属性设置器必须这样编写:

procedure SetIntegerArray(const Value: TAInteger);
属性设置程序可以使用开放数组参数吗

没有

包含新属性值的参数的类型必须与属性的类型兼容。打开的数组不是类型。您的属性设置器必须这样编写:

procedure SetIntegerArray(const Value: TAInteger);

FWIW,如果您使用的是现代的Delphi,那么
TArray
将比定制的动态数组提供更大的灵活性type@DavidHeffernan你为什么要回滚我的编辑?我所做的只是添加官方文档的链接。原始问题未被触及。您添加了更多。单词no.Why?FWIW,如果您使用的是现代的Delphi,那么
TArray
将比定制的动态数组提供更大的灵活性type@DavidHeffernan你为什么要回滚我的编辑?我所做的只是添加官方文档的链接。原始问题未被触及。您添加了更多。不,为什么?谢谢你的帮助!谢谢你的帮助!