av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

C# 強(qiáng)制類型轉(zhuǎn)換與C# 泛型淺析

C# 強(qiáng)制類型轉(zhuǎn)換和普通對(duì)象一樣,泛型類的對(duì)象也可以采用強(qiáng)制類型轉(zhuǎn)換轉(zhuǎn)換成另外的泛型類型,不過(guò)只有當(dāng)兩者在各個(gè)方面兼容時(shí)才能這么做。C# 編譯器只允許將一般類型參數(shù)隱式強(qiáng)制轉(zhuǎn)換到 Object 或約束指定的類型,如下面代碼塊所示。這樣的隱式強(qiáng)制類型轉(zhuǎn)換是類型安全的,因?yàn)榭梢栽诰幾g時(shí)發(fā)現(xiàn)任何不兼容性。

創(chuàng)新互聯(lián)是專業(yè)的達(dá)川網(wǎng)站建設(shè)公司,達(dá)川接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行達(dá)川網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

C# 強(qiáng)制類型轉(zhuǎn)換與C# 泛型實(shí)例演示

代碼塊

一般類型參數(shù)的隱式強(qiáng)制類型轉(zhuǎn)換

 
 
 
  1. interface ISomeInterface  
  2. {...}  
  3. class BaseClass  
  4. {...}  
  5. class MyClass where T : BaseClass,ISomeInterface  
  6. {  
  7.    void SomeMethod(T t)  
  8.    {  
  9.       ISomeInterface obj1 = t;  
  10.       BaseClass      obj2 = t;  
  11.       object         obj3 = t;  
  12.    }  

編譯器允許您將一般類型參數(shù)顯式強(qiáng)制轉(zhuǎn)換到其他任何接口,但不能將其轉(zhuǎn)換到類:

 
 
 
  1. interface ISomeInterface  
  2. {...}  
  3. class SomeClass  
  4. {...}  
  5. class MyClass   
  6. {  
  7.    void SomeMethod(T t)  
  8.    {  
  9.       ISomeInterface obj1 = (ISomeInterface)t;//Compiles  
  10.       SomeClass      obj2 = (SomeClass)t;     //Does not compile  
  11.    }  

但是,您可以使用臨時(shí)的 Object 變量,將一般類型參數(shù)強(qiáng)制轉(zhuǎn)換到其他任何類型:

 
 
 
  1. class SomeClass  
  2. {...}  
  3.  
  4. class MyClass   
  5. {  
  6.      
  7.    void SomeMethod(T t)  
  8.      
  9.    {  
  10.       object temp = t;  
  11.       SomeClass obj = (SomeClass)temp;  
  12.      
  13.    }  

不用說(shuō),這樣的顯式強(qiáng)制類型轉(zhuǎn)換是危險(xiǎn)的,因?yàn)槿绻麨槿〈话泐愋蛥?shù)而使用的類型實(shí)參不是派生自您要顯式強(qiáng)制轉(zhuǎn)換到的類型,則可能在運(yùn)行時(shí)引發(fā)異常。要想不冒引發(fā)強(qiáng)制類型轉(zhuǎn)換異常的危險(xiǎn),一種更好的辦法是使用 is 和 as 運(yùn)算符,如代碼塊 6 所示。如果一般類型參數(shù)的類型是所查詢的類型,則 is 運(yùn)算符返回 true;如果這些類型兼容,則 as 將執(zhí)行強(qiáng)制類型轉(zhuǎn)換,否則將返回 null。您可以對(duì)一般類型參數(shù)以及帶有特定類型實(shí)參的一般類使用 is 和 as。

C# 強(qiáng)制類型轉(zhuǎn)換與C# 泛型實(shí)例:

代碼塊

對(duì)一般類型參數(shù)使用“is”和“as”運(yùn)算符

 
 
 
  1. public class MyClass   
  2. {  
  3.    public void SomeMethod(T t)  
  4.    {  
  5.       if(t is int)  
  6.       {...}   
  7.  
  8.       if(t is LinkedList)  
  9.       {...}  
  10.  
  11.       string str = t as string;  
  12.       if(str != null)  
  13.       {...}  
  14.  
  15.       LinkedList list = t as LinkedList;  
  16.       if(list != null)  
  17.       {...}  
  18.    }  

C# 強(qiáng)制類型轉(zhuǎn)換與C# 泛型相關(guān)的內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C# 強(qiáng)制類型轉(zhuǎn)換與C# 泛型有所幫助。

【編輯推薦】

  1. C# 泛型實(shí)現(xiàn)理解及實(shí)例淺析
  2. C# 泛型應(yīng)用及優(yōu)點(diǎn)淺析
  3. 淺析C# 泛型約束中的一般約束
  4. C# 泛型約束之派生約束淺析
  5. 淺析C# 泛型約束中的構(gòu)造函數(shù)約束

網(wǎng)站欄目:C# 強(qiáng)制類型轉(zhuǎn)換與C# 泛型淺析
文章轉(zhuǎn)載:http://uogjgqi.cn/article/coegiie.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流