首页 新闻 搜索 专区 学院

System.Collections.CollectionBases的优点和作用?是不是鸡肋?

0
[已解决问题] 解决于 2012-07-06 08:23

MSDN这样解释CollectionBases——为强类型集合提供 abstract 基类。

也经常看到通过继承CollectionBases类实现自定义的集合类,但是没感觉有什么优点。

首先CollectionBases的方法接收object类型的参数,返回object类型的结果,所以基本都得重新实现。如果要通过继承CollectionBases实现值类型的集合类,还会有装箱拆箱的操作。

所以我觉得还不如继承List<>类或组合一个List<>方便。

CollectionBases是不是有我没有意识到的优点和作用呢?

CharlesNet的主页 CharlesNet | 菜鸟二级 | 园豆:213
提问于:2012-07-04 10:35
< >
分享
最佳答案
0

.NET 2.0之前没有泛型,所以微软提供了CollectionBase;

.NET 2.0有了泛型之后,CollectionBase用的就很少了。

我觉得不用CollectionBase的两大原因:

1. 装箱/拆箱

2. 不支持LINQ

参考:Why should I replace CollectionBase with Generics?

奖励园豆:5
dudu | 高人七级 |园豆:38814 | 2012-07-04 11:29

那如果要自定义集合类,比较好的方法是什么?

CharlesNet | 园豆:213 (菜鸟二级) | 2012-07-04 13:45

@CharlesNet: 继承自List<T>

dudu | 园豆:38814 (高人七级) | 2012-07-04 13:51
其他回答(2)
0

CollectionBase还是有用的,你留意一下,它的方法是virtual,意味着你可以重写,自定义自己的行为.

zhangweiwen | 园豆:904 (小虾三级) | 2012-07-04 11:25
0

CollectionBase 它的方法是virtual,可以重写,可以 模拟mock,有用

Qlin | 园豆:2403 (老鸟四级) | 2012-07-04 17:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册