主頁 > 知識庫 > .NET中的 類型轉(zhuǎn)換深入理解

.NET中的 類型轉(zhuǎn)換深入理解

熱門標(biāo)簽:南陽外呼系統(tǒng)定制化 同安公安400電話怎么申請流程 合肥電銷外呼系統(tǒng)哪家公司做的好 玉林市機(jī)器人外呼系統(tǒng)哪家好 申請400電話手續(xù) 預(yù)測式外呼系統(tǒng)使用說明 電話機(jī)器人軟件銷售工作 百度ai地圖標(biāo)注 蘋果手機(jī)凱立德地圖標(biāo)注

CLR最重要的一個(gè)特性就是類型安全。CLR在運(yùn)行時(shí)總能知道一個(gè)對象的類型。我們也可以通過調(diào)用GetType()方法,來得到對象的準(zhǔn)確類型。因?yàn)樵摲椒ㄊ且粋€(gè)非虛方法,所以我們不可能利用它來篡改一個(gè)類型的信息。(Microsoft.NET 框架程序設(shè)計(jì)修訂版>p117)

我們定義如下類

復(fù)制代碼 代碼如下:

 public class Employee  
  {
     string name= string.Empty;
     float age = -1;
     public override string ToString()
     {
         return "name = "+name +" and age = "+age;
     }
 }
 

通過如下代碼:
復(fù)制代碼 代碼如下:

 Employee e = new Employee();
 object oe = e as object;
 if(oe == null)
 {
     Console.WriteLine("oe is null");
 }
 Console.WriteLine("oe's type is : {0}",oe.GetType());
 

通過以上,應(yīng)該可以明白“CLR在運(yùn)行時(shí)總能知道一個(gè)對象的類型?!绷恕?BR>as 操作符提供了對左邊實(shí)例到右邊類型的兼容性檢驗(yàn),如果兼容,即左邊實(shí)例可以轉(zhuǎn)換為右邊類型的對象,則返回此對象的引用,否則返回null。除了as操作符之外,C#中還提供了is 操作符,它也提供了對左邊實(shí)例與右邊類型的兼容性檢驗(yàn),只不過當(dāng)檢驗(yàn)結(jié)果兼容時(shí),它返回的是true,否則返回false,因此,它還需要額外的顯示操作,以完成轉(zhuǎn)換。所以相對比較起來,as操作符效率更高些。此外,兩個(gè)操作符運(yùn)行過程中,都不會拋出異常。但是as操作符要求對轉(zhuǎn)換過的對象增加是否為null引用的判斷,以防止轉(zhuǎn)換不成功時(shí),對空引用操作。

由于as操作符在檢驗(yàn)結(jié)果不兼容時(shí),會返回null,因此,as操作符不可以把實(shí)例與值類型相檢驗(yàn),否則編譯不通過。因?yàn)橹殿愋筒荒苜x值為null(?除外).

標(biāo)簽:南京 南昌 揚(yáng)州 淄博 海南 臺州 南京 嘉興

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《.NET中的 類型轉(zhuǎn)換深入理解》,本文關(guān)鍵詞  .NET,中的,類型,轉(zhuǎn)換,深入,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《.NET中的 類型轉(zhuǎn)換深入理解》相關(guān)的同類信息!
  • 本頁收集關(guān)于.NET中的 類型轉(zhuǎn)換深入理解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章