DictionaryBase和Dictionary <Tkey,Tvalue>之间的区别

Bat*_*rry 6 .net c# collections

任何人都可以告诉我DictionaryBase和泛型之间的区别Dictionary<TKey, TValue>,除了这DictionaryBase是一个抽象类!它们都是强类型的,我在某处读到泛型类在性能上优于非泛型类,应该是首选的,那么具体用途是DictionaryBase什么呢?这两个课程几乎相同!

任何形式的帮助将不胜感激

谢谢

Ada*_*lph 5

非泛型集合类型仍然在.NET框架中的原因主要是为了向后兼容.通常,您应尽可能使用通用集合类型.


Dev*_*van 3

Dictionarybase 是实现非通用 IDictionary 接口的基类,而 Dictionary 是实现通用 IDictionary 接口的字典的通用版本。使用泛型优于非泛型。

我认为这会更有帮助何时使用泛型?

通常建议使用泛型集合,因为您可以立即获得类型安全的好处,而不必从基本集合类型派生并实现特定于类型的成员。当集合元素是值类型时,泛型集合类型的性能通常也优于相应的非泛型集合类型(并且优于从非泛型基集合类型派生的类型),因为使用泛型不需要对元素进行装箱。

另请参阅泛型简介

泛型类和方法以非泛型类和方法无法做到的方式将可重用性、类型安全性和效率结合在一起。泛型最常与集合以及对其进行操作的方法一起使用。.NET Framework 类库 2.0 版提供了一个新的命名空间 System.Collections.Generic,其中包含几个新的基于泛型的集合类。建议所有面向 .NET Framework 2.0 及更高版本的应用程序使用新的泛型集合类,而不是旧的非泛型对应类