Item1:Use Generic Collections 使用泛型集合
数据集合是泛型最典型的应用之一。在你现存的代码里,可能已经遍布了ArrayList和HashTable。在使用泛型之前,你可能会在将要编写的代码中大量使用System.Collection这个数据结构。然而,自从有了泛型,真的是没有任何理由再继续使用这个命名空间中的集合了。
如果说仅仅有那么一个领域,泛型可以带来毫无疑问的价值的话,那么这个领域就是集合。如果没有泛型,非泛型集合的生产者和消费者将被迫把被包含的类型声明为Objet。当然了,这样做的话,你的代码将会有很多强制转换和一般的类型转换(将每个Object对象转换为其真实的类型),这将使代码变得很凌乱,同时也意味着对于值类型需要将其进行装箱才能表示为Object类型。即使在你努力的限制非泛型集合的影响的时候,一般你都会被迫进行对特定类型的包装,从而使类膨胀。出于这些原因和其他一些在使用中的体会,可以很明确的得知:没有任何理由倾向于这些老式的、非泛型的集合了。事实上,我想这样告诉大家:泛型集合是泛型最引人入胜的用处。如果你并没有被使用泛型集合的价值所说服的话,那么泛型所带来的任何其他好处也不能说服你。
尽管我认为使用泛型的观点是不得不接受的,但是并不是每个解决方案都具有用泛型集合完全取代与其相对应的非泛型集合的荣耀。如果你公开了一个API,并且有客户绑定了非泛型的API,你就需要考虑如何将API转换成泛型的。在这种情况下,在具体实现中,加入泛型集合到API中依然是值得的。