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

首頁 > 編程 > .NET > 正文

.NET中的 類型轉換深入理解

2020-01-18 00:19:30
字體:
來源:轉載
供稿:網友

CLR最重要的一個特性就是類型安全。CLR在運行時總能知道一個對象的類型。我們也可以通過調用GetType()方法,來得到對象的準確類型。因為該方法是一個非虛方法,所以我們不可能利用它來篡改一個類型的信息。(Microsoft.NET 框架程序設計<修訂版>p117)

我們定義如下類

復制代碼 代碼如下:

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

通過如下代碼:
復制代碼 代碼如下:

 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());
 

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

由于as操作符在檢驗結果不兼容時,會返回null,因此,as操作符不可以把實例與值類型相檢驗,否則編譯不通過。因為值類型不能賦值為null(?除外).

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都昌县| 漯河市| 霍林郭勒市| 湖南省| 思茅市| 习水县| 红河县| 永年县| 绍兴市| 涿州市| 如皋市| 扎兰屯市| 喜德县| 绿春县| 辛集市| 罗平县| 友谊县| 尼木县| 凉城县| 炉霍县| 申扎县| 姚安县| 鄂伦春自治旗| 浪卡子县| 山丹县| 萨嘎县| 卫辉市| 嘉兴市| 新邵县| 大石桥市| 黄浦区| 邯郸县| 信宜市| 凌海市| 烟台市| 遂川县| 绥棱县| 宜兰市| 滨海县| 泊头市| 晋城|