如果我有一个ConcurrentDictionary
并且想要使用该Add()
功能,我需要转换为IDictionary
:
var cd = new ConcurrentDictionary<int, int>();
cd.Add(1, 1); // Compile error: does not contain a definition for 'Add'
IDictionary<int, int> id = cd;
id.Add(1, 1); // Works
问题ConcurrentDictionary 和 IDictionary告诉我这是因为使用私有方法显式ConcurrentDictionary
实现。IDictionary
我的问题:为什么要ConcurrentDictionary
这样实施?隐藏已实现接口的使用有什么好处?