为什么这个命名空间默认添加“System.Collections.Generic”?

时间:2009-09-15 00:23:34

标签: c#

只是一个普遍的好奇心问题。为什么在创建项目时默认情况下在Visual Studio中添加了此命名空间“System.Collections.Generic”,而不是让我们说“System.Collections”?

Generics下的Collection Classes是最优选的方式,而不是System.Collections中的Collection Classes吗?

由于 戒日

4 个答案:

答案 0 :(得分:8)

是的,仿制品收集比普通收藏更好,因为它们带来强力打字,可防止装箱和拆箱,以及所有令人讨厌的铸造。

使用常规集合的原因很少。即使您不知道要存储的对象类型,仍然可以使用List<object>之类的内容。

答案 1 :(得分:2)

通用集合更容易使用,默认情况下包含它们对我来说很有意义。

答案 2 :(得分:1)

.NET 2.0添加了泛型集合,它应该完全取代在为.NET 2.0及更高版本构建的应用程序中使用非泛型集合。

它们有许多优点,特别是因为它们带来了强大的打字并且避免了价值类型的装箱。

至于默认情况下添加命名空间的原因 - 我猜微软决定添加它以鼓励使用它而不是旧的System.Collections类。

答案 3 :(得分:0)

我怀疑如果MS使用泛型集合类发布了.NET BCL,那么很多非泛型版本都不会包含在内。

话虽如此,微软的代码中使用了ArrayList