程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> c#運算符as和is的用法

c#運算符as和is的用法

編輯:關於C#

as 運算符類似於類型轉換,所不同的是,當轉換失敗時,as運算符將產生空,而不是引發異常。在形式上,這種形式的表達式:

expression_r as type

as運算符只執行引用轉換和裝箱轉換。

as運算符無法執行其他轉換,如用戶定義的轉換,這類轉換應使用case表達式來代替其執行。

關於is的其實也差不多,只是IS不會幫你進行任何的轉換。所以需要自已進行顯示轉換。

is操作符進行轉換,它自動檢查時局是否和類型兼容,並返回結果。而且它不會拋出異常。如果對象引用為null,則is總返回false。

is例子:

if (cls1 is Class2) 
    Class2 cls2 = (Class2)cls1;
else
    System.Console.WriteLine("Error 2!");

as例子:

Class2 cls2 = cls1 as Class2;
if (cls2!=null)
    System.Console.WriteLine("Ok");
else
    System.Console.WriteLine("Error!");

補充:對比兩種方式,is需要做兩次對象的類型檢查,而as需要做一次對象類型檢查,再加一次null的檢查,而null檢查開銷比對象類型檢查少。相對as的方法效率高些。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved