gpt4 book ai didi

delphi - 当您不提供 guid 时,引用计数是否仍然适用于 Delphi 接口(interface)?

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

我有以下界面:

type IDataAccessObject<Pk; T:class> = interface
getByPrimaryKey(key: PK) : T;
//... more methods
end;

接口(interface)的实现如下:

type TMyClassDAO = class(TInterfacedObject, IDataAccessObject<integer, TMyClass>)
getByPrimaryKey(key:integer) : TMyClass;
// more methods
end;

请注意,我为接口(interface)提供guid(因为先前通用接口(interface)的每个实例化都是不同的接口(interface),并且它们不应该共享相同的guid)。但是我不确定这是否不会破坏 TInterfacedObject 实现的引用计数?

最佳答案

引用计数不依赖于 GUID,而是依赖于 _AddRef()_Release() 方法实现。

由于您继承自 TInterfacedObject,引用计数将适用于您的所有对象实例。

如果不提供 GUID,您唯一失去的就是从另一个接口(interface)查询一个接口(interface)的能力,例如调用 Supports() 函数、QueryInterface() 接口(interface)方法,以及 isas 运算符。

关于delphi - 当您不提供 guid 时,引用计数是否仍然适用于 Delphi 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44179086/

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