浅谈C#编程 泛型编程的好处

来源:互联网 发布:中英文对照软件 编辑:程序博客网 时间:2024/05/01 22:02

泛型最大的几个好处:
  1,性能
  分析下面的例子
  ArrayList的Add()方法定义为需要把一个对象作为参数,所以要装箱一个整数类型。在读取ArrayList中的值时,要进行拆箱,把对象转换为整数类型。装箱和拆箱操作容易使用,但是性能损失比较大,迭代许多项时尤其如此。
  01 CODE 1:
  02
  03 ArrayList list = new ArrayList();
  04 list.Add(44);    // boxing - covert a valuetype to a reference type
  05
  06 int i1 = (int)list[0]   //unboxing - covert areference type to a value type
  07
  08
  09 foreach(int i2 in list)
  10 {
  11     Console.WriteLine(i2); // unboxing
  12 }
  List类不是用对象,而是在使用时定义类型。在下面的例子中,List类的泛型类型定义为int,所以int类型在JIT编译器动态生成的类中使用,不再进行装箱和拆箱操作。
  01 CODE2:
  02
  03 List list = new List();
  04 list.Add(44);     // no boxing - valuetypes are stored in the List
  05
  06 int i1 = list[0];    // no unboxing, no castneeded
  07
  08 foreach (int i2 in list)
  09 {
  10     Console.WriteLine(i2);
  11 }
  2. 类型安全
  理解起来很简单,就是如果类型不匹配就会报错。确保类型安全
  3.二进制代码重用
  泛型允许更好的重用二进制代码。泛型类可以定义一次,用许多不通的类型实例化。不需要像C++模板那样访问源代码。

原创粉丝点击