IDictionary 与Dictionary

在这里使用IDictionary有什么价值?

使用接口的值始终相同:切换到另一个后端实现时,不必更改客户端代码。

考虑以后对代码进行概要分析表明哈希表实现(在Dictionary类中使用)不适合您的任务,并且二进制搜索树的性能会更好。 如果您已编码为接口,则切换实现非常简单。 但是,如果你使用了一个具体的类,你必须在更多的地方更改更多的代码。 =>这需要时间和金钱。

IDictionary可以实现更松散的耦合。

假设您有这样的方法:

 void DoSomething(IDictionary d) { //... } 

你可以像这样使用它:

 Dictionary a = new Dictionary(); SortedDictionary b = new SortedDictionary(); DoSomething(a); DoSomething(b); 

基于你之前的问题, Classinheritance了genericsdictionary和Interface以及答案中的讨论,我猜你要求更多关于inheritance而不是使用。

如果您对字典的实现方式感到满意,那么从Dictionary实现是很好的。 如果你想改变一些东西,那么实现IDictionary会更好。

恕我直言,如果您要用’new’覆盖现有成员,那么最好实现接口而不是inheritance原始类。