總所周知,.NET出現(xiàn)在.net framework 2.0,為什么要在2.0引入泛型那,因?yàn)槲④浽陂_(kāi)始開(kāi)發(fā).net框架時(shí)并沒(méi)有想過(guò)多個(gè)類(lèi)型參數(shù)傳輸時(shí)對(duì)方法的重構(gòu),這樣一來(lái),開(kāi)發(fā)人員就要面對(duì)傳輸多種類(lèi)型的參數(shù)而不得以寫(xiě)多個(gè)方法,但是,開(kāi)發(fā)者的智慧是無(wú)限的,創(chuàng)造性也由此被挖掘出來(lái),在泛型之前,便有開(kāi)發(fā)者為了提到代碼利用率便想到使用object類(lèi)型為參數(shù)類(lèi)型來(lái)傳遞參數(shù),這無(wú)疑解決了多個(gè)類(lèi)型的參數(shù)傳輸時(shí)并需要寫(xiě)多個(gè)方法的問(wèn)題。那么object類(lèi)型為什么能實(shí)現(xiàn)接受多個(gè)不同類(lèi)型的參數(shù)那?有了object類(lèi)型還為什么要設(shè)計(jì)泛型那?object類(lèi)型又有那么弊端那?其實(shí)有點(diǎn)基礎(chǔ)的開(kāi)發(fā)人員應(yīng)該都知道object類(lèi)型是所有類(lèi)型的父類(lèi),通過(guò)里氏轉(zhuǎn)換原則我們知道所有父類(lèi)出現(xiàn)的地方都可以用子類(lèi)替換,這樣就可以接收多個(gè)參數(shù)了,同時(shí)因?yàn)閛bject類(lèi)型轉(zhuǎn)換裝拆箱對(duì)性能的影響,在2.0時(shí),微軟推出了泛型。

     下面,我們引入泛型的聲明和調(diào)用:

1    public static void Show<T>(T tParameter)2       {3            Console.WriteLine($"This is{typeof(GenericClass)}Show<T>,paratype={tParameter.GetType()},value={tParameter}");4       }

    打印的內(nèi)容我們沒(méi)必要關(guān)注,我們只看方法頭,我們可以看到方法頭和參數(shù)里面加了T這個(gè)字母,其實(shí)這就是泛型聲明的規(guī)則,泛型在聲明時(shí),需要在方法頭加上<T>(T parm),
注意,尖括號(hào)里面的字母是可變的,可以是任何字母,但是尖括號(hào)里面的字母必須和參數(shù)里面的字母要一致,這樣一個(gè)方法就聲明好了。

  下面我們接下來(lái)研究下泛型的調(diào)用過(guò)程,泛型是如何在未命名參數(shù)類(lèi)型的情況下來(lái)聲明參數(shù)類(lèi)型的,在下面程序入口我寫(xiě)了兩個(gè)List的類(lèi)型

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷(xiāo)培訓(xùn)

        		

網(wǎng)友評(píng)論