首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当您不提供guid时,引用计数仍然适用于Delphi接口吗?

当您不提供guid时,引用计数仍然适用于Delphi接口吗?
EN

Stack Overflow用户
提问于 2017-05-25 11:10:14
回答 1查看 178关注 0票数 5

我有以下界面:

代码语言:javascript
复制
type IDataAccessObject<Pk; T:class> = interface
   getByPrimaryKey(key: PK) : T;
   //... more methods
end;

以及接口的实现如下:

代码语言:javascript
复制
type TMyClassDAO = class(TInterfacedObject, IDataAccessObject<integer, TMyClass>)
   getByPrimaryKey(key:integer) : TMyClass;
   // more methods
end;

请注意,我是而不是,它为接口提供了一个guid (因为以前的泛型接口的每个实例化都是不同的接口,它们不应该共享相同的guid)。但是,我不确定这是否会破坏TInterfacedObject实现的引用计数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-25 11:14:00

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

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

如果不提供GUID,就会失去从另一个接口查询一个接口的能力,例如对Supports()函数、QueryInterface()接口方法以及isas操作符的调用。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44179086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档