zoukankan      html  css  js  c++  java
  • .NET 2.0泛型集合类与.NET 1.1集合类的区别(二)

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

    3、接口
    在接口方面改动最大的ICollection<T>,在1.1中,ICollection是一个只读的版本,并没有任何方法可以让你修改集合中的数据,但在泛型的ICollection<T>中增加了修改数据的方法和IsReadOnly属性,我很遗憾没有找到泛型化的只读版本的ICollection。

    ICollection<T>虽然可以修改数据,但他缺乏索引功能的支持,所以又定义了IList<T>接口,他继承自ICollection<T>并提供用数字检索的功能。

    在与老版本的集合接口兼容性方面,IEnumerable<T>支持IEnumerable,ICollection<T>不支持ICollection,IList<T>也不支持IList。

     

    System.Collections.Generic.IDictionary<TKey, TValue>与旧版本的字典并没有太大的区别,在接口的继承层次上,原先的IDictionary继承自ICollection,现在仍然是对应的泛型版本ICollection<T>,但因为ICollection<T>增加了修改数据的功能,这就带来了一定的麻烦,因为字典要求Add方法传入Key和Value俩个参数,而ICollection的Add只能有一个参数,所以在ICollection<T>中限制为:ICollection<KeyValuePair<TKey,TValue>>,以提供俩个参数。

    字典接口还新增加了TryGetValue(TKey, TValue),这个方法主要是为提高性能而设立,原先如果你想安全的获取某个键位时,必须使用ContainsKey(TKey)先检索是否存在,然后用This检索,这样就有俩次检索的过程,现在的TryGetValue将只用检索一次。

  • 相关阅读:
    jsfl 常用自定义方法
    jsfl 常用方法
    Java 跨平台原理
    JDK、JRE 和 JVM 的区别
    win10 中安装 JDK8 以及环境配置
    JDK 14 都已经发布了,Java 8 依然是我的最爱
    DOS 命令大全用法详解
    《Java程序设计基础》 第4章手记
    堆和栈的区别
    CC#JavaPython 基本数据类型比较
  • 原文地址:https://www.cnblogs.com/tansm/p/224625.html
Copyright © 2011-2022 走看看