使用Delphi 10 Seattle,是否可以使用通用接口作为另一个泛型类定义的接口约束?
我有这个界面声明:
IrmOpenAPIConfigurationItemRequest<REQUESTDATA, RESPONSE> = interface(IrmOpenAPIRequest)
procedure DoSomething;
end;
我想声明一个以上类型作为约束的泛型类,所以我可以在TBaseConfigItem_Model的实现中使用DoSomething方法。
TBaseConfigItem_Model<REQUEST: IrmOpenAPIConfigurationItemRequest<REQUESTDATA, RESPONSE>> = class(...);
这给出了编译错误:未声明的标识符&#39; REQUESTDATA&#39;
我该如何做到这一点?
P.S。为清楚起见,省略了一些实施细节
答案 0 :(得分:2)
您当然可以使用通用接口作为约束,但是您需要引入缺少的通用参数。这就是编译器错误消息告诉你的。以下编译:
type
TBaseConfigItem_Model<REQUESTDATA; RESPONSE; REQUEST:
IrmOpenAPIConfigurationItemRequest<REQUESTDATA, RESPONSE>> = class
public
procedure DoSomething;
end;