Delphi 如何定义匿名方法的数组
我想定义一个匿名方法数组:Delphi 如何定义匿名方法的数组,delphi,Delphi,我想定义一个匿名方法数组:TFunc: 函数MyFunc:Integer; 开始 结束; 程序TForm84.按钮1单击(发件人:ToObject); var A:焦油; 开始 A:=[MyFunc]; 结束; 但是Delphi编译器提示错误: [dcc32 Error] E2010 Incompatible types: 'System.SysUtils.TFunc<System.Integer>' and 'Integer' [dcc32错误]E2010不兼容类型:“Syst
TFunc
:
函数MyFunc:Integer;
开始
结束;
程序TForm84.按钮1单击(发件人:ToObject);
var A:焦油;
开始
A:=[MyFunc];
结束;
但是Delphi编译器提示错误:
[dcc32 Error] E2010 Incompatible types: 'System.SysUtils.TFunc<System.Integer>' and 'Integer'
[dcc32错误]E2010不兼容类型:“System.SysUtils.TFunc”和“Integer”
将数组用于本机数据类型,如
integer
或string
也适用于类似的构造。编译器无法确定使用MyFunc
是否意味着调用函数或将其引用为函数
因此,您可能需要帮助编译器:
SetLength(A, 1);
A[0] := MyFunc;
编译器无法确定使用
MyFunc
是指调用函数还是将其引用为函数
因此,您可能需要帮助编译器:
SetLength(A, 1);
A[0] := MyFunc;
MyFunc()
不接受任何输入参数,因此Delphi允许在没有括号的情况下调用它,例如:
var
I: Integer;
I := MyFunc();
I := MyFunc; // <-- same as above!
或:
或:
类型
数组:=TArray;
变量
A:数组;
开始
A:=TIntFuncArray.Create(MyFunc);//或者@或Addr(),不确定
结束;
MyFunc()
不接受任何输入参数,因此Delphi允许有选择地调用它而不使用括号,例如:
var
I: Integer;
I := MyFunc();
I := MyFunc; // <-- same as above!
或:
或:
类型
数组:=TArray;
变量
A:数组;
开始
A:=TIntFuncArray.Create(MyFunc);//或者@或Addr(),不确定
结束;
A := [Addr(MyFunc)];
type
TIntFuncArray := TArray<TFunc<Integer>>;
var
A: TIntFuncArray;
begin
A := TIntFuncArray.Create(MyFunc); // or maybe @ or Addr(), not sure
end;