C# as與is的用法

  1. 類型轉換
    • 任何類型均可以轉換爲其基類類型,用隱式轉換完成;
    • 任何類型轉換爲其派生類型時,必須進行顯示轉換。如:(類型名)對象名;
    • 使用GetType能夠取得任何對象的精確類型;
    • 基本類型能夠使用Convert類實現類型轉換;
    • 除了string之外的其餘類型都有Parse方法,用於將字符串類型轉換成對應的基本類型;
    • 值類型和引用類型的轉換稱爲裝箱(boxing)或拆箱(unboxing);
  2. as/is示例
    • is轉換規則:
      • 檢查對象類型的兼容性,並返回結果true(false);
      • 不會拋出異常;
      • 若是對象爲null,剛返回false;
        示例:
         1 object o = "abc";  
         2 if (o is string) //執行第一次類型兼容性檢查  
         3 {  
         4     string s = (string)o; //執行第二次類型兼容性檢查,並轉換  
         5     MessageBox.Show("轉換成功!");  
         6 }  
         7 else  
         8 {  
         9     MessageBox.Show("轉換失敗!");  
        10 }  
    • as轉換規則:
      • 檢查對象類型的兼容性,並返回轉換結果,若是不兼容則返回null; 
      • 不會拋出異常;
      • 若是結果判斷爲空,則強制執行類型轉換將拋出NullReferenceException異常; 示例:
        1 object o = "abc";  
        2 string s = o as string; //執行第一次類型兼容性檢查,並返回結果  
        3 if (s != null)   
        4     MessageBox.Show("轉換成功!");  
        5 else  
        6     MessageBox.Show("轉換失敗!");  

        as比is少執行一次兼容性檢查,性能可能會高一點點。性能

相關文章
相關標籤/搜索