有没有人听说过使用类型作为键并支持继承的“类型字典”?类型字典?
在我的申请,我想有从类型功能的字典,有点像这样:
Dictionary<Type, Func<object, object>> Transformers;
的想法是,它会根据使用以某种方式变换对象,其键入:
// Transform an object 'obj'
object result = Transformers[obj.GetType()](obj)
普通字典的缺点是类型必须完全匹配。因此,如果我已经为IList < T>写了一个变压器,将它放入变形金刚字典中是没有用的,因为没有物体具有IList < T>(仅T [],列表< T>等)。换句话说,如果obj是列表< T>,则IList < T>的变换器将不会通过普通字典中的查找找到。
假设有一个TypeDictionary < TValue>中没有这样的事情,我可能会考虑写一个,如果它不是太难。任何想法如何实现?
这是行不通的。 IEqualityComparer对于从A派生并实现IA和IB的类B返回哪个哈希码?另外,请记住词典应该能够同时保存'List','IList '和'object'的键。 –
Qwertie
2009-12-04 18:20:29
你说得对,我没有想到通过。 – 2009-12-04 18:56:08
@Qwertie在这种情况下,如果字典中有几个匹配类型的话,你的字典会返回什么?它是否应该返回所有的事件,只有最专业的等等? – 2009-12-04 19:04:17