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

首頁 > 編程 > .NET > 正文

.net中as和is之間的區(qū)別分析

2024-07-10 13:16:19
字體:
供稿:網(wǎng)友

1、as

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

效率:

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

2、is

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 垫江县| 林周县| 洪泽县| 丰镇市| 勃利县| 江北区| 沙洋县| 武功县| 沈阳市| 蓬莱市| 德令哈市| 清远市| 平舆县| 涡阳县| 陈巴尔虎旗| 镶黄旗| 罗城| 塘沽区| 略阳县| 磐石市| 嘉峪关市| 扶沟县| 横山县| 阿图什市| 溆浦县| 个旧市| 庆阳市| 攀枝花市| 丰台区| 化德县| 汉阴县| 枝江市| 招远市| 秦安县| 沾益县| 沁源县| 韶关市| 汶上县| 高州市| 镇江市| 依兰县|