有沒有人聽說過使用類型作爲鍵並支持繼承的「類型字典」?類型字典?
在我的申請,我想有從類型功能的字典,有點像這樣:
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