日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#泛型概念的初步理解

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

創(chuàng)新互聯(lián)擁有網(wǎng)站維護(hù)技術(shù)和項(xiàng)目管理團(tuán)隊(duì),建立的售前、實(shí)施和售后服務(wù)體系,為客戶提供定制化的成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站維護(hù)、成都溫江機(jī)房解決方案。為客戶網(wǎng)站安全和日常運(yùn)維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護(hù)服務(wù)覆蓋集團(tuán)企業(yè)、上市公司、外企網(wǎng)站、成都商城網(wǎng)站開發(fā)、政府網(wǎng)站等各類型客戶群體,為全球數(shù)千家企業(yè)提供全方位網(wǎng)站維護(hù)、服務(wù)器維護(hù)解決方案。

 
 
 
  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# 泛型代碼塊

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

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

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

 
 
 
  1. Stack stack = new Stack(); 

編譯器和運(yùn)行庫負(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 為類型實(shí)參。

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

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


網(wǎng)站題目:C#泛型概念的初步理解
本文網(wǎng)址:http://m.5511xx.com/article/coighgj.html