zoukankan      html  css  js  c++  java
  • .NET泛型与非泛型的问题

    泛型集合通常情况下,建议您使用泛型集合,因为这样可以获得类型安全的直接优点而不需要从基集合类型派生并实现类型特定的成员。下面的泛型类型对应于现有的集合类型:
    1、List 是对应于 ArrayList 的泛型类。
    2、Dictionary 是对应于 Hashtable 的泛型类。
    3、Collection 是对应于 CollectionBase 的泛型类。
    4、ReadOnlyCollection 是对应于 ReadOnlyCollectionBase 的泛型类。
    5、Queue、Stack 和 SortedList 泛型类分别对应于与其同名的非泛型类。
    6、LinkedList 是一个通用链接列表,它提供运算复杂度为 O(1) 的插入和移除操作。
    7、SortedDictionary 是一个排序的字典,其插入和检索操作的运算复杂度为 O(log n),这使得它成为 SortedList 的十分有用的替代类型。
    8、KeyedCollection 是介于列表和字典之间的混合类型,它提供了一种存储包含自己键的对象的方法。

    归纳起来,泛型比非泛型具有下面两个优点:
      1、 更加安全
      在非泛型编程中,虽然所有的东西都可以作为Object传递,但是在传递的过程中免不了要进行类型转换。而类型转换在运行时是不安全的。使用泛型编程将可以减少不必要的类型转换,从而提高安全性。不仅是值类型,引用类型也存在这样的问题,因此有必要的尽量的去使用泛型集合。
        2、 效率更高
    在非泛型编程中,将简单类型作为Object传递时会引起装箱和拆箱的操作,这两个过程都是具有很大开销的。使用泛型编程就不必进行装箱和拆箱操作了。
  • 相关阅读:
    TDateTime 的相关用法
    Delphi 2005 之后的版本如何装组件
    (收藏)《博客园精华集》分类索引
    用 IIS 7、ARR 與 Velocity 建设高性能的大型网站
    异常处理准则
    Linq之动态排序(字符传入)
    用存储过程构造一个虚拟日期表发现的趣事
    Linq to SQL 加注Data Annotation在 Asp.Net MVC2中的应用
    .net framework加密方法
    SQL Server到Oracle连接服务器
  • 原文地址:https://www.cnblogs.com/ioter/p/3719875.html
Copyright © 2011-2022 走看看