このコードを検討してください:
TForm3 = class(TForm)
public
class procedure GetAConn(var res:String); overload;
class procedure GetAConn(var res:Integer);overload;
{ Public declarations }
end;
class procedure TForm3.GetAConn(var res: String);
begin
showmessage(res);
end;
class procedure TForm3.GetAConn(var res: Integer);
begin
showmessage(IntToStr(res))
end;
これは問題なくコンパイルされます。
今、私がこれをしているなら:
procedure TForm3.FormCreate(Sender: TObject);
begin
TForm3.GetAConn('aaa');
TForm3.GetAConn(10);
end;
[DCCエラー]Unit3.pas(64):E2250これらの引数で呼び出すことができる「GetAConn」のオーバーロードされたバージョンはありません。
DelphiXEでこれが制限されていることについては何も見つかりませんでした。
LE:このように機能しています:
class procedure TForm3.GetAConn(var res: String);
begin
res := res + 'modif';
end;
class procedure TForm3.GetAConn(var res: Integer);
begin
res := res + 100;
end;
procedure TForm3.FormCreate(Sender: TObject);
var s:String;
i:Integer;
begin
s:='aaa';
TForm3.GetAConn(s);
showmessage(s);
i:=10;
TForm3.GetAConn(i);
showmessage(IntToStr(i))
end;