为什么要用泛型呢?
博主觉得泛型的主要优势有以下几点:
(1)保证了类型的安全性:泛型约束了变量的类型,保证了类型的安全性。例如List<int>和ArrayList。List<int>集合只能加入int类型的变量,ArrayList可以Add任何常用类型,编译的时候不会提示错误。
(2)避免了不必要的装箱、拆箱操作,提高程序的性能:泛型变量固定了类型,使用的时候就已经知道是值类型还是引用类型,避免了不必要的装箱、拆箱操作。
举例说明:
使用泛型之前,我们使用object代替。
object a=1;//由于是object类型,会自动进行装箱操作。
int b=(int)a;//强制转换,拆箱操作。这样一去一来,当次数多了以后会影响程序的运行效率。
使用泛型之后
public static T GetValue<T>(T a)
{
return a;
}
public static void Main(string[] args)
{
int b=GetValue<int>(1);//使用这个方法的时候已经指定了类型是int,所以不会有装箱和拆箱的操作。
}
(3)提高方法的复用性。上面的例子基本能说明这个优势。
关于C#中装箱和拆箱的具体分析,见深入理解C#的装箱和拆箱