zoukankan      html  css  js  c++  java
  • .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集合类的区别(二)
  • 相关阅读:
    AOJ.866 飞越原野 (三维BFS)
    UVA.129 Krypton Factor (搜索+暴力)
    UVA.10986 Fractions Again (经典暴力)
    UVA.10305 Maximum Product (暴力)
    UVA.725 Division (暴力)
    HDU.3342 Legal or Not (拓扑排序 TopSort)
    HDU.2647 Reward(拓扑排序 TopSort)
    13 成都
    15 沈阳
    14 鞍山
  • 原文地址:https://www.cnblogs.com/tansm/p/225265.html
Copyright © 2011-2022 走看看