国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

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

2024-07-10 12:41:05
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

我們定義如下類(lèi):
代碼如下:
 public class Employee  
  {
     string name= string.Empty;
     float age = -1;
     public override string ToString()
     {
         return "name = "+name +" and age = "+age;
     }
 }
 
通過(guò)如下代碼:
代碼如下:
 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());
 
通過(guò)以上,應(yīng)該可以明白“CLR在運(yùn)行時(shí)總能知道一個(gè)對(duì)象的類(lèi)型?!绷恕?BR>as 操作符提供了對(duì)左邊實(shí)例到右邊類(lèi)型的兼容性檢驗(yàn),如果兼容,即左邊實(shí)例可以轉(zhuǎn)換為右邊類(lèi)型的對(duì)象,則返回此對(duì)象的引用,否則返回null。除了as操作符之外,C#中還提供了is 操作符,它也提供了對(duì)左邊實(shí)例與右邊類(lèi)型的兼容性檢驗(yàn),只不過(guò)當(dāng)檢驗(yàn)結(jié)果兼容時(shí),它返回的是true,否則返回false,因此,它還需要額外的顯示操作,以完成轉(zhuǎn)換。所以相對(duì)比較起來(lái),as操作符效率更高些。此外,兩個(gè)操作符運(yùn)行過(guò)程中,都不會(huì)拋出異常。但是as操作符要求對(duì)轉(zhuǎn)換過(guò)的對(duì)象增加是否為null引用的判斷,以防止轉(zhuǎn)換不成功時(shí),對(duì)空引用操作。

由于as操作符在檢驗(yàn)結(jié)果不兼容時(shí),會(huì)返回null,因此,as操作符不可以把實(shí)例與值類(lèi)型相檢驗(yàn),否則編譯不通過(guò)。因?yàn)橹殿?lèi)型不能賦值為null(?除外).

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 襄樊市| 连城县| 错那县| 揭西县| 泰兴市| 大名县| 仪陇县| 丽水市| 潮安县| 奎屯市| 石景山区| 斗六市| 晴隆县| 巴楚县| 池州市| 岑巩县| 博爱县| 平定县| 政和县| 阿图什市| 金沙县| 娄烦县| 大余县| 永平县| 兴化市| 淳化县| 舟山市| 西充县| 山阴县| 清水河县| 马山县| 拉孜县| 和平县| 黎川县| 尉氏县| 清水河县| 泽库县| 浦东新区| 石台县| 名山县| 施甸县|