.NET 2.0泛型集合类与.NET 1.1集合类的区别(三)

4、Collection<T>和KeyedCollection<TKey, TItem>
我认为范型最大的受益者就是CollectionBase类了,以前为了创建一个集合类,我们需要从CollectionBase继承,并完成强类型的方法和内部拦截操作俩部分的工作,由于有了范型,所以你将不必自己再做强类型的方法这个工作了。

原先的CollectionBase是一个抽象的类,而Collection<T>现在是一个非抽象的类了,你可以直接使用他,但老实说,如果你是程序内部使用集合,而并不对外公开你的集合,那我还是建议你使用List<T>,而不是Collection<T>。

Microsoft.在 Collection<T>上又继承了一个KeyedCollection<TKey,TItem>,这个类是原先没有的。他很有意思,他既有Collection按照数字检索的功能,又有字典按照Key检索的特点,因此他是你对外公开字典类型的集合时,理想的基础类。
他要求你必须重载.GetKeyForItem(TItem)方法,以获取指定项目的Key。但很遗憾,MS好像忘记了将字典的TryGetValue包装出来。

ReadOnlyCollection<T>非常适合只读版本的集合类的基础类。

5、BindingList<T>
通常情况下,普通的集合类(例如Collection<T>)如果绑定到表格或者其他的控件时,你将发现某些功能无法使用,例如你调用了集合的删除记录方法,但表格的显示并没有做及时的自动刷新。现在为了更方便的支持对象集合的绑定操作,MS设计了BindingList<T>类,他位于System.ComponentModel命名空间,他可以支持完整的集合绑定操作(IBingList接口),例如数据感知功能。
完。

.NET 2.0泛型集合类与.NET 1.1集合类的区别(一)

.NET 2.0泛型集合类与.NET 1.1集合类的区别(二)
posted @ 2005-08-29 14:15 编写人生 阅读(1170) 评论(3)  编辑 收藏

  回复  引用    
#1楼 2005-08-29 15:10 | :( [未注册用户]
:(
  回复  引用  查看    
#2楼 2005-08-30 17:44 | 农耕时代      
好文章,支持
  回复  引用    
#3楼 2005-08-30 18:20 | tansm [未注册用户]
谢谢鼎力支持

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交