• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
编写人生
写写代码,写写人生
博客园    首页    新随笔    联系   管理    订阅  订阅
.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 on 2005-08-29 14:15  编写人生  阅读(2069)  评论(3)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3