gpt4 book ai didi

delphi - 接口(interface)助手或委托(delegate)接口(interface)父级

转载 作者:行者123 更新时间:2023-12-02 14:32:14 26 4
gpt4 key购买 nike

如果我有一个由第三方实现的现有 IInterface 后代,并且我想添加辅助例程,Delphi 是否提供了任何简单的方法来实现此目的,而无需手动重定向每个接口(interface)方法?也就是说,给定一个像这样的界面:

IFoo = interface
procedure Foo1;
procedure Foo2;
...
procedure FooN;
end;

是否支持类似于以下内容的内容?

IFooHelper = interface helper for IFoo
procedure Bar;
end;

IFooBar = interface(IFoo)
procedure Bar;
end;

TFooBar = class(TInterfacedObject, IFoo, IFooBar)
private
FFoo: IFoo;
public
procedure Bar;
property Foo: IFoo read FFoo implements IFoo;
end;

我特别想知道如何让我始终使用单个变量引用(IFoo、IFooBar 或 TFooBar)调用 Foo1、Foo2 和 Bar,而无需在它们之间切换,也无需将 IFoo 的所有方法添加到TFooBar。

最佳答案

将您的类(class)更改为阅读:

TFooBar = Class(TInterfacedObject, IFoo, IFooBar)
private
FFoo: IFoo;
public
procedure Bar;
property Foo: IFoo read FFoo implements IFoo ;
end;

您还需要一个构造函数或某种方法来创建 IFoo 的实例并将其放置在 FFoo 中。

关于delphi - 接口(interface)助手或委托(delegate)接口(interface)父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2678795/

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