.NET 2.0泛型集合类与.NET 1.1集合类的区别(三)
2005-08-29 14:15
447 查看
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集合类的区别(二)
我认为范型最大的受益者就是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集合类的区别(二)
相关文章推荐
- .NET 2.0泛型集合类与.NET 1.1集合类的区别(一)
- .NET 2.0泛型集合类与.NET 1.1集合类的区别(二)
- .NET 2.0泛型集合类与.NET 1.1集合类的区别(一)
- .NET 2.0泛型集合类与.NET 1.1集合类的区别(二)
- .NET 2.0网站与.NET 1.1网站的区别
- 泛型-java与.NET中List<T>的区别
- 【蛙蛙推荐】.NET 1.1移植到.NET 2.0出现的一些小问题的解决
- .NET 2.0 泛型Quiz
- .NET2.0泛型在实际开发中的一次小应用
- IIS下多种框架体系共存(例如,asp、.net 1.1、.net 2.0 共存)
- .Net 2.0开始支持泛型,下面给出摘录一个MSDN上关于泛型的例子
- Yii 2.0与Yii 1.1 的区别
- HTTP1.0 HTTP 1.1 HTTP 2.0主要区别
- HTTP1.0 HTTP 1.1 HTTP 2.0主要区别
- C#非泛型集合类与泛型集合类的区别
- http 1.0 / 1.1 / 2.0的区别
- HTTP 2.0与HTTP 1.1的区别
- .NET 2.0 和1.1 共用时,出现"服务器应用程序不可用"的错误.
- .Net 1.1/.Net 2.0共存主机引起的.Net 2.0程序无法正常运行的错误。[转]