当将开放数组传递给重载方法时,有时会得到“E2251不明确的重载调用'MyMethodName'”。
示例:
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure Test(AArrA : array of integer); overload;
procedure Test(AArrA : array of TObject); overload;
end;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
Test([10, 15]);
end;
它会产生以下错误:
[DCC错误] Unit1.pas(37):E2251对“测试”的模糊重载调用
到目前为止,我总是使用临时动态数组,因为它避免了错误,但我发现它不是很干净
procedure TForm1.FormCreate(Sender: TObject);
var
Tmp : array of integer;
begin
SetLength(Tmp, 2);
Tmp[0] := 10;
Tmp[1] := 15;
Test(Tmp);
end;
有没有更简洁的方法来帮助Delphi识别接受开放数组参数的重载?