成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C# 泛型概念的初步理解

開發(fā) 后端
什么是C# 泛型呢?對于C# 泛型的理解是什么呢?那么本文就向你介紹C# 泛型的概念以及實例的理解,希望對你理解和學(xué)習(xí)C# 泛型有所幫助。

C# 泛型是一種類型占位符,或稱之為類型參數(shù)。我們知道在一個方法中,一個變量的值可以作為參數(shù),但其實這個變量的類型本身也可以作為參數(shù)。泛型允許我們在調(diào)用的時候再指定這個類型參數(shù)是什么。在.net中,泛型能夠給我們帶來的兩個明顯好處是——類型安全和減少裝箱、拆箱。通過泛型可以定義類型安全類,而不會損害類型安全、性能或工作效率。您只須一次性地將服務(wù)器實現(xiàn)為一般服務(wù)器,同時可以用任何類型來聲明和使用它。為此,需要使用 ﹤ 和 ﹥ 括號,以便將一般類型參數(shù)括起來。例如,可以按如下方式定義和使用一般堆棧:

  1. public class Stack  
  2. {  
  3.    T[] m_Items;   
  4.    public void Push(T item)  
  5.    {...}  
  6.    public T Pop()  
  7.    {...}  
  8. }  
  9. Stack stack = new Stack();  
  10. stack.Push(1);  
  11. stack.Push(2);  
  12. int number = stack.Pop(); 

C# 泛型代碼塊

顯示一般堆棧的完整實現(xiàn)。將代碼塊 1 與代碼塊 2 進(jìn)行比較,您會看到,好像 代碼塊 1 中每個使用 Object 的地方在代碼塊 2 中都被替換成了 T,除了使用一般類型參數(shù) T 定義 Stack 以外:

  1. public class Stack  
  2. {...} 

在使用一般堆棧時,必須通知編譯器使用哪個類型來代替一般類型參數(shù) T(無論是在聲明變量時,還是在實例化變量時):

  1. Stack stack = new Stack(); 

編譯器和運行庫負(fù)責(zé)完成其余工作。所有接受或返回 T 的方法(或?qū)傩裕┒紝⒏臑槭褂弥付ǖ念愋停ㄔ谏鲜鍪纠袨檎停?/P>

C# 泛型代碼塊之一般堆棧

  1. public class Stack  
  2. {  
  3.    readonly int m_Size;   
  4.    int m_StackPointer = 0;  
  5.    T[] m_Items;  
  6.    public Stack():this(100)  
  7.    {}  
  8.    public Stack(int size)  
  9.    {  
  10.       m_Size = size;  
  11.       m_Items = new T[m_Size];  
  12.    }  
  13.    public void Push(T item)  
  14.    {  
  15.       if(m_StackPointer ﹥= m_Size)   
  16.          throw new StackOverflowException();  
  17.       m_Items[m_StackPointer] = item;  
  18.       m_StackPointer++;  
  19.    }  
  20.    public T Pop()  
  21.    {  
  22.       m_StackPointer--;  
  23.       if(m_StackPointer ﹥= 0)  
  24.       {  
  25.          return m_Items[m_StackPointer];  
  26.       }  
  27.       else 
  28.       {  
  29.          m_StackPointer = 0;  
  30.          throw new InvalidOperationException(  
  31.            "Cannot pop an empty stack");  
  32.       }  
  33.    }  

注 T 是一般類型參數(shù)(或類型參數(shù)),而一般類型為 Stack。Stack 中的 int 為類型實參。

該編程模型的優(yōu)點在于,內(nèi)部算法和數(shù)據(jù)操作保持不變,而實際數(shù)據(jù)類型可以基于客戶端使用服務(wù)器代碼的方式進(jìn)行更改。

C# 泛型的基本概念就向你介紹到這里,希望對你了解和學(xué)習(xí)C# 泛型有所幫助。

【編輯推薦】

  1. ASP.NET異步回調(diào)淺析
  2. C#網(wǎng)絡(luò)編程入門基礎(chǔ)知識淺析
  3. C#網(wǎng)絡(luò)編程服務(wù)器端程序設(shè)計淺析
  4. C#網(wǎng)絡(luò)編程客戶端程序設(shè)計淺析
  5. 淺析C# 泛型處理的問題空間
責(zé)任編輯:仲衡 來源: MSDN
相關(guān)推薦

2009-08-24 14:26:42

C# 泛型類

2009-08-24 17:39:21

C# 泛型集合

2009-08-24 15:28:19

C# 泛型方法

2009-08-24 10:37:27

C# 泛型

2009-06-24 10:25:25

C#泛型

2009-08-24 14:43:35

C# 泛型

2009-08-26 09:36:03

C#泛型

2009-09-01 16:14:11

C#泛型

2013-03-20 09:27:33

C#泛型

2009-09-02 17:38:16

C#泛型支持

2009-08-24 15:12:13

C# 泛型接口

2009-08-24 18:15:24

C# Dictiona

2009-08-24 14:51:25

C# 泛型泛型類型

2009-08-24 15:38:21

C# 泛型數(shù)組

2009-08-24 14:20:13

C# 強制類型轉(zhuǎn)換

2009-08-24 10:07:57

C#泛型處理

2009-08-24 17:58:19

C# 泛型集合

2009-08-24 17:27:05

C#泛型應(yīng)用

2009-08-24 16:39:19

C# 泛型應(yīng)用

2009-08-26 18:02:05

C#泛型問題
點贊
收藏

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

主站蜘蛛池模板: 国产精品伦一区二区三级视频 | 国产精品视频播放 | 九九热在线免费视频 | 日日夜夜精品免费视频 | 免费在线观看一区二区三区 | 91精品国产91综合久久蜜臀 | 国产一级片在线播放 | 一本色道久久综合亚洲精品高清 | 国产乱码久久久久久一区二区 | 日韩视频一区二区三区 | www.亚洲区 | 天天干夜夜操 | 国产精品视频一二三区 | 成人视屏在线观看 | 亚洲精品在线视频 | 米奇7777狠狠狠狠视频 | 久久精品亚洲国产奇米99 | 在线观看中文字幕视频 | 国产一区二区三区四区 | 97色在线观看免费视频 | 日韩免费网站 | 精品香蕉一区二区三区 | 欧美精品一区二区三区一线天视频 | 中文字幕日韩欧美一区二区三区 | 精品欧美一区二区三区久久久小说 | 国产精品视频播放 | 男人的天堂中文字幕 | 欧美日韩电影免费观看 | 91色在线视频 | 日韩精品三区 | 精精精精xxxx免费视频 | 国产精品区一区二区三区 | 中文字幕一区二区三区乱码在线 | 欧美日韩综合一区 | 玖玖玖在线| 成人不卡一区二区 | 伊人操| 亚洲天堂成人在线视频 | 精品国产欧美一区二区三区成人 | 毛片av免费在线观看 | 亚洲免费视频播放 |