日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

NET基础(3):is 和 as 操作符

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NET基础(3):is 和 as 操作符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  在C#語言中進行類型轉換的另外一種方式是使用is和as操作符。is檢查對象是否兼容于指定類型,返回Boolean值true或false。注意,is操作符永遠不拋出異常,例如以下代碼:

Object o = new Object();Boolean b1 = (o is Object);    //返回true
Boolean b2 = (o is Employee);    //返回false

  如果對象引用null,is操作符總是返回false,因為沒有可以檢查其類型的對象。

is操作符通常像下面這樣使用:

if(o is Employee)
{Employee e = (Employee)o;
}

  在上述代碼中,CLR實際檢查兩次對象類型。is操作符首先核實o是否兼容于Employee類型,如果是,在if語句塊內進行類型轉換,CLR再次核實o是否引用一個Employee。CLR的類型檢測增加了安全性,但無疑會對性能造成一些損失。這是因為CLR首先必須判斷變量o引用的對象的實際類型。然后,CLR必須遍歷繼承層次結構,用每個基類型去核對指定的類型(Employee)。由于這是一個相當常用的編程模式,所以c#專門提供了as操作符,目的就是簡化這種代碼的寫法,同時提升其性能。

Employee e = o as Employee;
if(e != null)
{//在if中使用e
}

  在這段代碼中,CLR核實o是否兼容于Employee類型;如果是,as返回對同一個對象的非null引用。如果o不兼容與Employee類型,as 返回null。注意,as操作符造成CLR只檢驗一次對象類型。if語句只檢測e是否為null;這個檢查速度比檢驗對象的類型要快的多。

? ? ?as 操作符的工作方式與強制類型轉換一樣,只是它永遠不會拋出異常,如果對象不能轉型,結果就是null。所以,正確做法是檢查最終生成的引用是否為null。

轉載于:https://www.cnblogs.com/sunyj/p/5537608.html

總結

以上是生活随笔為你收集整理的NET基础(3):is 和 as 操作符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。