如何为重载的接口方法创建解析子句?

Wos*_*osi 3 delphi interface

假设我有一个像这样的界面:

IMaker = interface
  function Make(const Int: Integer): IInterface; overload;
  function Make(const Str: String): IInterface; overload;
end;
Run Code Online (Sandbox Code Playgroud)

实现此接口的常见方法如下所示:

TMaker = class(TInterfacedObject, IMaker)
public
  function Make(const Int: Integer): IInterface; overload;
  function Make(const Str: String): IInterface; overload;
end; 
Run Code Online (Sandbox Code Playgroud)

但是,如果我出于某些原因想要使用方法解决条款呢?我的第一个猜测看起来像这样:

TMaker = class(TInterfacedObject, IMaker)
private
  function MakeByInt(const Int: Integer): IInterface; 
  function MakeByStr(const Str: String): IInterface; 
public
  function IMaker.Make(const Int: Integer) = MakeByInt;
  function IMaker.Make(const Str: String) = MakeByStr;
end; 
Run Code Online (Sandbox Code Playgroud)

此代码无法编译,因为方法解析子句中不允许使用参数列表.

在这种情况下语法如何?甚至可以将方法解析子句用于重载方法吗?

Rem*_*eau 8

你的问题说明了答案:

方法解析子句中不允许使用参数列表

参数列表是解决重载所必需的,并且由于您无法在方法解析子句中指定参数列表,因此不能对重载方法使用方法解析子句.没有语法支持您的要求.