为什么Dictionary <TKey,TValue>没有一个带有KeyValuePair对象的Add方法?

Lam*_*lex 4 .net c# collections inheritance interface

按照.NET API,类Dictionary<TKey, TValue>是继承自ICollection<T>,这里TKeyValuePair<TKey, TValue>.Dictionary<TKey, TValue>该类如何隐藏它继承的一些方法ICollection<T>

例如:

ICollection<T>有方法ICollection.Add(T item) ,但当你使用一个Dictionary<TKey, TValue>对象时,它没有该方法.你只能使用Dictionary<TKey, TValue>.Add(TKey key, TValue value).没有Dictionary<TKey, TValue>.Add(KeyValuePair<TKey,TValue> kvp)方法.

谁知道为什么?这些方法是如何隐藏的?

Yah*_*hia 5

这是通过显式实现接口并使此实现私有/受保护来完成的

你总是可以施放DictionaryICollection,然后调用Add-尽管我不会这样做,因为我不知道它是否会工作...