我想用Delphi(2009-因此我有通用的字典类)编写与该C#代码类似的东西:
Dictionary<Type, Object> d = new Dictionary<Type, Object>();
d.Add(typeof(ISomeInterface), new SomeImplementation());
object myObject = d[typeof(ISomeInterface)];
有任何想法吗?
提前致谢,
里斯托
最佳答案
对于接口(interface),您将要使用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;
当然,如果这是类而不是接口(interface),则可以只使用TClass引用。
关于delphi - NET在phi中的 'Type'类替代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1032170/