C#泛型编程指导原则(一)

Item1Use  Generic Collections 使用泛型集合

数据集合是泛型最典型的应用之一。在你现存的代码里,可能已经遍布了ArrayListHashTable。在使用泛型之前,你可能会在将要编写的代码中大量使用System.Collection这个数据结构。然而,自从有了泛型,真的是没有任何理由再继续使用这个命名空间中的集合了。

如果说仅仅有那么一个领域,泛型可以带来毫无疑问的价值的话,那么这个领域就是集合。如果没有泛型,非泛型集合的生产者和消费者将被迫把被包含的类型声明为Objet。当然了,这样做的话,你的代码将会有很多强制转换和一般的类型转换(将每个Object对象转换为其真实的类型),这将使代码变得很凌乱,同时也意味着对于值类型需要将其进行装箱才能表示为Object类型。即使在你努力的限制非泛型集合的影响的时候,一般你都会被迫进行对特定类型的包装,从而使类膨胀。出于这些原因和其他一些在使用中的体会,可以很明确的得知:没有任何理由倾向于这些老式的、非泛型的集合了。事实上,我想这样告诉大家:泛型集合是泛型最引人入胜的用处。如果你并没有被使用泛型集合的价值所说服的话,那么泛型所带来的任何其他好处也不能说服你。

尽管我认为使用泛型的观点是不得不接受的,但是并不是每个解决方案都具有用泛型集合完全取代与其相对应的非泛型集合的荣耀。如果你公开了一个API,并且有客户绑定了非泛型的API,你就需要考虑如何将API转换成泛型的。在这种情况下,在具体实现中,加入泛型集合到API中依然是值得的。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值