(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() { int b=GetValue<int>(1);//使用這個方法的時候已經指定了類型是int,所以不會有裝箱和拆箱的操作。 }
(3)提高方法、算法的重用性。上面的例子基本能說明這個優勢。
3、泛型的使用:
(1)泛型方法的使用:這也是博主使用最多的用法之一,像這種泛型方法一般是一些static的通用方法,例如原來項目中用到的一個將DataGridViewRow對象轉換成對應的實體Model的方法如下: