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