这篇文章主要来讲讲c#中的泛型,因为泛型在c#中有很重要的位置,对于写出高可读性,高性能的代码有着关键的作用。当我多次看到自己团队的代码中包含着大量的非泛型集合,隐式的装箱和拆箱操作时,我都会建议他们补一补泛型基础。
1,什么是泛型
-
- 泛型是c#2中非常重要的一个新特性,它增强了代码的可读性,将大量的安全检查从执行期转移到编译期,从而提高代码的安全性和性能。从根本上来说,泛型实现了类型和方法的参数化。
2,为什么要使用泛型,泛型解决了什么问题
我们先来看看下面的代码(代码只是为了演示泛型,没有实际的意义),看看有什么问题?
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 ArrayList array = new ArrayList(); 6 array.Add(1); 7 array.Add(2); 8 array.Add(3); 9 ArrayList resultArray = NumberSqrt(array); 10 foreach (var item in resultArray) 11 { 12 Console.WriteLine(item); 13 } 14 } 15 public static ArrayList NumberSqrt(ArrayList array) 16 { 17 ArrayList sqrtArray = new ArrayList(); 18 foreach (var item in array) 19 { 20 sqrtArray.Add(Math.Sqrt((double)(int)item)); 21 } 22 return sqrtArray; 23 24 } 25 }