gpt4 book ai didi

delphi - 如何为重载接口(interface)方法创建解析子句?

转载 作者:行者123 更新时间:2023-12-03 15:44:46 26 4
gpt4 key购买 nike

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

IMaker = interface
function Make(const Int: Integer): IInterface; overload;
function Make(const Str: String): IInterface; overload;
end;

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

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

但是如果我想使用 method resolution clauses 该怎么办?由于某些原因?我的第一个猜测是这样的:

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;

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

这种情况下的语法是什么样的?是否可以对重载方法使用方法解析子句?

最佳答案

您的问题已给出答案:

parameter lists are not allowed in method resolution clauses

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

关于delphi - 如何为重载接口(interface)方法创建解析子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40224018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com