加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi中的.NET“Type”类替代方案

发布时间:2020-12-15 09:49:31 所属栏目:大数据 来源:网络整理
导读:我想用Delphi(2009 – 所以我有通用字典类)写一些类似于C#代码的东西: DictionaryType,Object d = new DictionaryType,Object();d.Add(typeof(ISomeInterface),new SomeImplementation());object myObject = d[typeof(ISomeInterface)]; 有任何想法吗? 提
我想用Delphi(2009 – 所以我有通用字典类)写一些类似于C#代码的东西:

Dictionary<Type,Object> d = new Dictionary<Type,Object>();
d.Add(typeof(ISomeInterface),new SomeImplementation());
object myObject = d[typeof(ISomeInterface)];

有任何想法吗?

提前致谢,

斯托伊奇

解决方法

对于接口,您将需要使用PTypeInfo指针,该指针由编译器魔术函数TypeInfo返回. PTypeInfo在TypInfo单元中声明.

type
  TInterfaceDictionary = TObjectDictionary<PTypeInfo,TObject>;
var
  d: TInterfaceDictionary;
  myObject: TSomeImplementation;
begin
  d := TInterfaceDictionary.Create([doOwnsValues]);
  d.Add(TypeInfo(ISomeInterface),TSomeImplementation.Create());
  myObject = d[TypeInfo(ISomeInterface)];
end;

当然,如果这是类而不是接口,您可以只使用TClass引用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读