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

創(chuàng)新互聯(lián)是專業(yè)的達川網(wǎng)站建設(shè)公司,達川接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行達川網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
C# 強制類型轉(zhuǎn)換與C# 泛型實例演示:
代碼塊
一般類型參數(shù)的隱式強制類型轉(zhuǎn)換
- interface ISomeInterface
- {...}
- class BaseClass
- {...}
- class MyClass where T : BaseClass,ISomeInterface
- {
- void SomeMethod(T t)
- {
- ISomeInterface obj1 = t;
- BaseClass obj2 = t;
- object obj3 = t;
- }
- }
編譯器允許您將一般類型參數(shù)顯式強制轉(zhuǎn)換到其他任何接口,但不能將其轉(zhuǎn)換到類:
- interface ISomeInterface
- {...}
- class SomeClass
- {...}
- class MyClass
- {
- void SomeMethod(T t)
- {
- ISomeInterface obj1 = (ISomeInterface)t;//Compiles
- SomeClass obj2 = (SomeClass)t; //Does not compile
- }
- }
但是,您可以使用臨時的 Object 變量,將一般類型參數(shù)強制轉(zhuǎn)換到其他任何類型:
- class SomeClass
- {...}
- class MyClass
- {
- void SomeMethod(T t)
- {
- object temp = t;
- SomeClass obj = (SomeClass)temp;
- }
- }
不用說,這樣的顯式強制類型轉(zhuǎn)換是危險的,因為如果為取代一般類型參數(shù)而使用的類型實參不是派生自您要顯式強制轉(zhuǎn)換到的類型,則可能在運行時引發(fā)異常。要想不冒引發(fā)強制類型轉(zhuǎn)換異常的危險,一種更好的辦法是使用 is 和 as 運算符,如代碼塊 6 所示。如果一般類型參數(shù)的類型是所查詢的類型,則 is 運算符返回 true;如果這些類型兼容,則 as 將執(zhí)行強制類型轉(zhuǎn)換,否則將返回 null。您可以對一般類型參數(shù)以及帶有特定類型實參的一般類使用 is 和 as。
C# 強制類型轉(zhuǎn)換與C# 泛型實例:
代碼塊
對一般類型參數(shù)使用“is”和“as”運算符
- public class MyClass
- {
- public void SomeMethod(T t)
- {
- if(t is int)
- {...}
- if(t is LinkedList)
- {...}
- string str = t as string;
- if(str != null)
- {...}
- LinkedList list = t as LinkedList;
- if(list != null)
- {...}
- }
- }
C# 強制類型轉(zhuǎn)換與C# 泛型相關(guān)的內(nèi)容就向你介紹到這里,希望對你了解和學習C# 強制類型轉(zhuǎn)換與C# 泛型有所幫助。
【編輯推薦】
- C# 泛型實現(xiàn)理解及實例淺析
- C# 泛型應(yīng)用及優(yōu)點淺析
- 淺析C# 泛型約束中的一般約束
- C# 泛型約束之派生約束淺析
- 淺析C# 泛型約束中的構(gòu)造函數(shù)約束
標題名稱:C# 強制類型轉(zhuǎn)換與C# 泛型淺析
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/coegiie.html


咨詢
建站咨詢
