《你必須知道的.NET》--is和as(Ⅰ)

本節主要介紹類型轉換方面知識!安全

一、任何類型均可以安全地轉換爲其基類類型,能夠由隱式轉換來完成;spa

二、任何類型轉換爲其派生類型時,必須進行顯式轉換;code

三、值類型和引用類型的轉換機制稱爲裝箱(boxing)和拆箱(unboxing);對象

 Ⅰ、IS模式blog

  a.檢查對象類型的兼容性,並返回結果:true或者false;
  b.不會拋出異常;
  c.若是對象爲null,則返回值永遠爲false。
 ex:
    string a = "hello world!"; 
    if (a is XX) 
    { 
      XX b = (XX)a; 
   }

 

 Ⅱ、AS模式string

  a.檢查對象類型的兼容性,並返回結果,若是不兼容就返回null;
  b.不會拋出異常;
  c.若是結果判斷爲空,則強制執行類型轉換將拋出NullReferenceExcep異常;
  d.as必須和引用類型一塊兒使用。
 ex: 
  object o = new object();
    XX b = (XX)o;    // 若是類型轉換不成功,會拋出異常
  對於上面的as操做,等效於下面的is操做:
    XX b = o is XX ? (XX)o: null ;
  實現的語法更加簡明,且不會引起異常,在類型轉換時值得推薦。

綜上所述,as模式較is模式執行效率上更勝一籌,可是一般來講,is用於進行類型判斷,as用於類型轉型。class

相關文章
相關標籤/搜索