当前位置:  开发笔记 > 编程语言 > 正文

.NET中的非泛型集合是否已过时?

如何解决《.NET中的非泛型集合是否已过时?》经验,为你挑选了4个好方法。

换句话说:

是否有充分的理由选择松散类型的集合而不是类型安全的集合(HashTable vs. Dictionary)?它们是否仅用于兼容性?

据我所知,通用集合不仅类型安全,而且性能更好.


这是一篇关于该主题的综合文章:使用C#2.0对数据结构进行广泛的检查.



1> Curt Hagenlo..:

非泛型集合已过时,已从Silverlight和Live Mesh中使用的CoreCLR中删除.


嗯,这是10年后,非通用集合仍在这里,所以我会说微软采取相同的立场.接受的答案是,非仿制品的存活时间比Silverlight和Live Mesh更长!

2> Tony Lee..:

COM可见性也存在问题 - COM interop不能与泛型一起使用



3> Sean Chamber..:

继续前进只应使用通用集合.还有避免在集合中装箱/取消装箱类型的好处.这是无效的,特别是当您拥有一组值类型时,这些值类型在存储在集合中时转换为System.Object,因此将值存储在堆而不是callstack上.


装箱/拆箱_only_适用于价值类型.

4> Mel..:

关于使用非泛型集合来存储异构的东西集合,你总是可以使用List 来完成同样的事情.仅仅因为这个原因,我认为几乎没有理由再次触及非通用集合.

例外情况是保持与其他语言编写的系统的兼容性,或者与以前版本的.NET框架保持兼容,但如果你问我,这是一个非常"前卫"的案例.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有