新聞中心
通過泛型,你重新獲得了鏈接列表的代碼通用(對于所有類型只用實現(xiàn)一次),而當你初始化鏈表的時候你告訴鏈表所能接受的類型。這個實現(xiàn)是非常簡單的,讓我們重新回到Node類:

創(chuàng)新互聯(lián)建站服務(wù)項目包括云巖網(wǎng)站建設(shè)、云巖網(wǎng)站制作、云巖網(wǎng)頁制作以及云巖網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,云巖網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到云巖省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
- public class Node{
- Object data;
- ...
注意到 data 的類型是Object,(在EmployeeNode中,它是Employee)。我們將把它變成一個泛型(通常,由一個大寫的T代表)。我們同樣定義Node類,表示它可以被泛型化,以接受一個T類型。
- public class Node < T>{
- T data;
- ...
讀作:T類型的Node。T代表了當Node被初始化時,Node所接受的類型。T可以是Object,也可能是整型或者是Employee。這個在Node被初始化的時候才能確定。
注意:使用T作為標識只是一種約定俗成,你可以使用其他的字母組合來代替,比如這樣:
- public class Node < UnknownType>{
- UnknownType data;
- ...
通過使用T作為未知類型,next字段(下一個結(jié)點的引用)必須被聲明為T類型的Node(意思是說接受一個T類型的泛型化Node)。
Node< T> next;
構(gòu)造函數(shù)接受一個T類型的簡單參數(shù):
- public Node(T data)
- {
- this.data = data;
- this.next = null;
- }
Node 類的其余部分是很簡單的,所有你需要使用Object的地方,你現(xiàn)在都需要使用T。LinkedList 類現(xiàn)在接受一個T類型的Node,而不是一個簡單的Node作為頭結(jié)點。
- public class LinkedList< T>{
- Node< T> headNode = null;
再來一遍,轉(zhuǎn)換是很直白的。任何地方你需要使用Object的,現(xiàn)在改做T,任何需要使用Node的地方,現(xiàn)在改做 Node< T>。下面的代碼初始化了兩個鏈接表。一個是整型的。
- LinkedList< int> ll = new LinkedList< int>();
另一個是Employee類型的:
- LinkedList< Employee> employees = new LinkedList< Employee>();
剩下的代碼與***個版本沒有區(qū)別,除了沒有裝箱、拆箱,而且也不可能將錯誤的類型保存到集合中。
- LinkedList< int> ll = new LinkedList< int>();
- for ( int i = 0; i < 10; i ++ )
- {
- ll.Add(i);
- }
- Console.WriteLine(ll);
- Console.WriteLine(" Done.");
- LinkedList< Employee> employees = new LinkedList< Employee>();
- employees.Add(new Employee("John"));
- employees.Add(new Employee("Paul"));
- employees.Add(new Employee("George"));
- employees.Add(new Employee("Ringo"));
- Console.WriteLine(employees);
- Console.WriteLine(" Done.");
- Console.WriteLine("The fourth integer is " + ll[3]);
- Employee d = employees[1];
- Console.WriteLine("The second Employee is " + d);
泛型允許你不用復(fù)制/粘貼冗長的代碼就實現(xiàn)類型安全的集合。而且,因為,使用泛型運行時才被擴展成特殊類型。Just In Time編譯器可以在不同的實例之間共享代碼,***,它顯著地減少了你需要編寫的代碼。
這樣,使用泛型就達到了代碼重用的目的。
文章名稱:如何使用泛型達到代碼重用的目的
標題鏈接:http://m.fisionsoft.com.cn/article/dhdpoec.html


咨詢
建站咨詢
