C# Dictionary Base和Dictionary之间的区别<;Tkey,Tvalue>;
谁能告诉我C# Dictionary Base和Dictionary之间的区别<;Tkey,Tvalue>;,c#,.net,collections,C#,.net,Collections,谁能告诉我DictionaryBase和genericDictionaryBase之间的区别,除了DictionaryBase是一个抽象类之外!它们都是强类型的,我在某个地方读到,泛型类在性能上优于非泛型类,应该是首选类,那么DictionaryBase的确切用途是什么呢? 这两门课几乎一样 任何形式的帮助都将不胜感激 感谢非泛型集合类型仍在.NET framework中的原因主要是为了向后兼容。通常,您应该尽可能使用泛型集合类型。Dictionarybase是实现非泛型IDictionary接
DictionaryBase
和genericDictionaryBase
之间的区别,除了DictionaryBase
是一个抽象类之外!它们都是强类型的,我在某个地方读到,泛型类在性能上优于非泛型类,应该是首选类,那么DictionaryBase
的确切用途是什么呢?
这两门课几乎一样
任何形式的帮助都将不胜感激
感谢非泛型集合类型仍在.NET framework中的原因主要是为了向后兼容。通常,您应该尽可能使用泛型集合类型。Dictionarybase是实现非泛型IDictionary接口的基类,而Dictionary是实现泛型IDictionary接口的字典的泛型版本。与非泛型药相比,泛型药的使用更受欢迎 我想这会更有帮助 通常建议使用泛型集合,因为 类型安全的直接好处不必从 基本集合类型和实现特定于类型的成员。通用的 集合类型通常也比相应的 非泛型集合类型(优于派生的类型) 当集合元素 是值类型,因为对于泛型,不需要将 元素 也经过, 泛型类和方法结合了可重用性、类型安全性和 以非泛型同行无法做到的方式提高效率。 泛型最常用于集合和方法 对他们进行手术。.NET Framework类库的2.0版 提供新命名空间System.Collections.Generic,其中包含 几个新的基于泛型的集合类。建议 所有针对.NET Framework 2.0及更高版本的应用程序都使用 新的泛型集合类,而不是旧的非泛型集合类 对应
我刚刚完成了将一个旧的
DictionaryBase
类IXmlSerializable
转换为genericDictionary(string,string)
最痛苦的区别是,对于通用的字典
,当我为一个不存在的键调用this[key]
时,我得到一个异常,说明该键不存在
在
DictionaryBase
上,我毫无例外地返回null
。在我的例子中,这很痛苦,因为系统中充满了代码,在试图获取keys值之前,没有检查dictionary是否包含skey
。假设我把序列化搞砸了,这让我更加痛苦。因此,由于通用字典的存在,DictionaryBase没有实际的用途!!这两个类都是强类型的。。并且也从接口派生。除了DictionaryBase,System.Collections中的所有类都不是特定于类型的!!所以,区别只在于它们来自不同的接口,DictionaryBase是一个抽象类。那么非泛型类中泛型类的对应项不应该被淘汰吗!!!!!泛型IDictionary是非泛型IDictionary的泛型版本。泛型促进类型安全和效率。