一、泛型
假設(shè)我要寫(xiě)個(gè)公用的輸出傳入?yún)?shù)的方法(不用泛型),因?yàn)槿f(wàn)物皆對(duì)象的理由,我先定義一個(gè)方法show(object obj),如下面所示:
public static void Show(object obj) { Console.WriteLine(obj.ToString()); }
執(zhí)行這個(gè)方法
int i = 1; //裝箱 Show(i);
如果傳入的是值類(lèi)型,值類(lèi)型轉(zhuǎn)換為引用類(lèi)型,我們知道會(huì)發(fā)生裝箱,這是對(duì)性能的損害,想想如果是個(gè)集合,就得多次執(zhí)行裝箱、拆箱操作。如ArrayList類(lèi),ArrayList儲(chǔ)存對(duì)象,Add()方法定義為需要把一個(gè)對(duì)象作為參數(shù),如果傳入的值類(lèi)型,就得裝箱,在讀取ArrayList中的值時(shí),又得進(jìn)行拆箱,如下面代碼所示:
var list = new ArrayList(); &n