閱讀946 返回首頁    go 阿裏雲 go 技術社區[雲棲]


C#的is和as規則——讀《你必須知道的.net》

 

is

檢查對象類型的兼容性,並返回結果,true或者false;

不會拋出異常; 

如果對象為null,則返回值永遠為 false。

 

object o = new object(); 
class A 



if (o is A)            //執行第一次類型兼容檢查

    A a = (A) o;       //執行第二次類型兼容檢

  

 

as

 

檢查對象類型的兼容性,並返回結果,如果不兼容就返回 null; 
 

不會拋出異常; 
 

如果結果判斷為空,則強製執行類型轉換將拋出NullReferenceException 異常。

 

object o = new object(); 
class B 



B b = o as B;  //執行一次類型兼容檢查

if(b!=null)

{

   MessageBox.Show("b is B's instance.");

}

 

縱上比較,is/as 操作符,提供了更加靈活的類型轉型方式,但是as 操作符在執行效率上更勝一籌,
我們在實際的編程中應該體會其異同,酌情量才。

最後更新:2017-04-02 22:16:00

  上一篇:go getCurrentSession與openSession的區別
  下一篇:go Asp.net中的PostBackUrl屬性