国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.net中as和is之間的區別分析

2024-07-10 12:45:39
字體:
來源:轉載
供稿:網友

1、as

用于在兼容的引用類型之間執行轉換,as 運算符類似于強制轉換操作;但是,如果轉換不可行,as 會返回 null 而不是引發異常。更嚴格地說,這種形式的表達式:expression as type,等效于expression is type ? (type)expression : (type)null,只是 expression 只被計算一次。注意,as 運算符只執行引用轉換和裝箱轉換。as 運算符無法執行其他轉換,如用戶定義的轉換,這類轉換應使用 cast 表達式來執行 as操作符不會做過的轉換操作,當需要轉化對象的類型屬于轉換目標類型或者轉換目標類型的派生類型時,那么此轉換操作才能成功。

效率:

當用as操作符進行類型轉換的時候,首先判斷當前對象的類型, 當類型滿足要求后才進行轉換,而傳統的類型轉換方式,是用當前對象直接去轉換, 而且為了保護轉換成功,要加上try-catch. 而且并不產生新的對象【當不成功的時候,會返回null】。 相對來說,as效率高點,用as進行類型轉換是安全的。 實例: e.Item.DataItem as DataRowView 同等 (DataRowView)e.Item.DataItem

2、is

檢查對象是否與給定類型兼容,例如:if(obj is string){}。如果所提供的表達式非空,并且所提供的對象可以強制轉換為所提供的類型而不會導致引發異常,則 is 表達式的計算結果將是 true。如果已知表達式將始終是 true 或始終是 false,則 is 關鍵字將導致編譯時警告,但是,通常在運行時才計算類型兼容性。不能重載 is 運算符。請注意,is 運算符只考慮引用轉換、裝箱轉換和取消裝箱轉換。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桃园市| 浏阳市| 无锡市| 收藏| 英吉沙县| 宁河县| 临邑县| 阿拉善右旗| 田阳县| 新田县| 维西| 镇巴县| 武隆县| 韶关市| 石首市| 苏州市| 府谷县| 大新县| 金山区| 平塘县| 瑞昌市| 永和县| 湘潭县| 广宗县| 济南市| 眉山市| 伊吾县| 临城县| 乡宁县| 灌云县| 缙云县| 武夷山市| 耿马| 图们市| 江山市| 南康市| 元江| 曲沃县| 萨嘎县| 利川市| 包头市|