自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用泛型達到代碼重用的目的

開發(fā) 后端
本文介紹了使用泛型達到代碼重用的方法,供大家參考。

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

  1. public class Node{  
  2.     Object data;  
  3.     ... 

注意到 data 的類型是Object,(在EmployeeNode中,它是Employee)。我們將把它變成一個泛型(通常,由一個大寫的T代表)。我們同樣定義Node類,表示它可以被泛型化,以接受一個T類型。

  1. public class Node < T>{  
  2.     T data;  
  3.     ... 

讀作:T類型的Node。T代表了當Node被初始化時,Node所接受的類型。T可以是Object,也可能是整型或者是Employee。這個在Node被初始化的時候才能確定。

注意:使用T作為標識只是一種約定俗成,你可以使用其他的字母組合來代替,比如這樣:

  1. public class Node < UnknownType>{  
  2.     UnknownType data;  
  3.     ... 

通過使用T作為未知類型,next字段(下一個結(jié)點的引用)必須被聲明為T類型的Node(意思是說接受一個T類型的泛型化Node)。

    Node< T> next;

構(gòu)造函數(shù)接受一個T類型的簡單參數(shù):

  1. public Node(T data)  
  2. {  
  3.     this.data = data;  
  4.     this.next = null;  

Node 類的其余部分是很簡單的,所有你需要使用Object的地方,你現(xiàn)在都需要使用T。LinkedList 類現(xiàn)在接受一個T類型的Node,而不是一個簡單的Node作為頭結(jié)點。

  1. public class LinkedList< T>{  
  2.     Node< T> headNode = null

再來一遍,轉(zhuǎn)換是很直白的。任何地方你需要使用Object的,現(xiàn)在改做T,任何需要使用Node的地方,現(xiàn)在改做 Node< T>。下面的代碼初始化了兩個鏈接表。一個是整型的。

  1. LinkedList< int> ll = new LinkedList< int>(); 

另一個是Employee類型的:

  1. LinkedList< Employee> employees = new LinkedList< Employee>(); 

剩下的代碼與***個版本沒有區(qū)別,除了沒有裝箱、拆箱,而且也不可能將錯誤的類型保存到集合中。

  1. LinkedList< int> ll = new LinkedList< int>();  
  2. for ( int i = 0; i <  10; i ++ )  
  3. {  
  4.     ll.Add(i);  
  5. }  
  6.  
  7. Console.WriteLine(ll);  
  8. Console.WriteLine("  Done.");  
  9.  
  10. LinkedList< Employee> employees = new LinkedList< Employee>();  
  11. employees.Add(new Employee("John"));  
  12. employees.Add(new Employee("Paul"));  
  13. employees.Add(new Employee("George"));  
  14. employees.Add(new Employee("Ringo"));  
  15.  
  16. Console.WriteLine(employees);   
  17. Console.WriteLine("  Done.");  
  18. Console.WriteLine("The fourth integer is " + ll[3]);  
  19. Employee d = employees[1];  
  20. Console.WriteLine("The second Employee is " + d); 

泛型允許你不用復制/粘貼冗長的代碼就實現(xiàn)類型安全的集合。而且,因為,使用泛型運行時才被擴展成特殊類型。Just In Time編譯器可以在不同的實例之間共享代碼,***,它顯著地減少了你需要編寫的代碼。

這樣,使用泛型就達到了代碼重用的目的。

【編輯推薦】

  1. C# winForm自定義鼠標樣式的兩種方法
  2. C#自定義消息框的設置圖解
  3. 掌握C#自定義泛型類:從初始化說起
  4. C#存儲過程的循序漸進
  5. 存儲過程的優(yōu)勢及其調(diào)用方法介紹
責任編輯:book05 來源: csdn
相關(guān)推薦

2024-06-28 01:13:59

工具C#代碼

2021-09-29 18:17:30

Go泛型語言

2023-01-05 17:13:28

TypeScript泛型組件

2024-01-03 08:00:00

Java軟件開發(fā)代碼

2024-10-28 00:40:49

Go語法版本

2022-04-15 09:55:59

Go 泛型Go 程序函數(shù)

2009-09-01 16:14:11

C#泛型

2023-12-28 10:30:56

類型系統(tǒng)Rust

2024-01-09 09:27:57

Rust編程泛型

2009-05-27 10:12:27

LINQ泛型字典Dictionary

2009-04-24 09:33:12

LINQ查詢非泛型

2018-11-08 15:50:18

前端Javascript重用性

2019-09-04 00:20:10

JSON泛型擦除

2016-03-22 16:51:13

C++泛型膨脹

2021-06-17 06:51:32

Java泛型Java編程

2023-05-29 13:56:00

JSReact

2013-12-04 14:19:40

JavaScript代碼重用

2023-11-29 08:19:45

Go泛型缺陷

2009-08-24 16:46:04

C# 泛型

2022-05-06 09:22:25

Go泛型
點贊
收藏

51CTO技術(shù)棧公眾號