.net中as和is之間的區(qū)別分析_.Net教程
推薦:ASP.NET記錄錯(cuò)誤日志的實(shí)現(xiàn)方法在本文中,我們將通過(guò)一個(gè)簡(jiǎn)單的處理來(lái)記錄在我們的網(wǎng)站中的錯(cuò)誤和異常
1、as
用于在兼容的引用類型之間執(zhí)行轉(zhuǎn)換,as 運(yùn)算符類似于強(qiáng)制轉(zhuǎn)換操作;但是,如果轉(zhuǎn)換不可行,as 會(huì)返回 null 而不是引發(fā)異常。更嚴(yán)格地說(shuō),這種形式的表達(dá)式:expression as type,等效于expression is type ? (type)expression : (type)null,只是 expression 只被計(jì)算一次。注意,as 運(yùn)算符只執(zhí)行引用轉(zhuǎn)換和裝箱轉(zhuǎn)換。as 運(yùn)算符無(wú)法執(zhí)行其他轉(zhuǎn)換,如用戶定義的轉(zhuǎn)換,這類轉(zhuǎn)換應(yīng)使用 cast 表達(dá)式來(lái)執(zhí)行 as操作符不會(huì)做過(guò)的轉(zhuǎn)換操作,當(dāng)需要轉(zhuǎn)化對(duì)象的類型屬于轉(zhuǎn)換目標(biāo)類型或者轉(zhuǎn)換目標(biāo)類型的派生類型時(shí),那么此轉(zhuǎn)換操作才能成功。
效率:
當(dāng)用as操作符進(jìn)行類型轉(zhuǎn)換的時(shí)候,首先判斷當(dāng)前對(duì)象的類型, 當(dāng)類型滿足要求后才進(jìn)行轉(zhuǎn)換,而傳統(tǒng)的類型轉(zhuǎn)換方式,是用當(dāng)前對(duì)象直接去轉(zhuǎn)換, 而且為了保護(hù)轉(zhuǎn)換成功,要加上try-catch. 而且并不產(chǎn)生新的對(duì)象【當(dāng)不成功的時(shí)候,會(huì)返回null】。 相對(duì)來(lái)說(shuō),as效率高點(diǎn),用as進(jìn)行類型轉(zhuǎn)換是安全的。 實(shí)例: e.Item.DataItem as DataRowView 同等 (DataRowView)e.Item.DataItem
2、is
檢查對(duì)象是否與給定類型兼容,例如:if(obj is string){}。如果所提供的表達(dá)式非空,并且所提供的對(duì)象可以強(qiáng)制轉(zhuǎn)換為所提供的類型而不會(huì)導(dǎo)致引發(fā)異常,則 is 表達(dá)式的計(jì)算結(jié)果將是 true。如果已知表達(dá)式將始終是 true 或始終是 false,則 is 關(guān)鍵字將導(dǎo)致編譯時(shí)警告,但是,通常在運(yùn)行時(shí)才計(jì)算類型兼容性。不能重載 is 運(yùn)算符。請(qǐng)注意,is 運(yùn)算符只考慮引用轉(zhuǎn)換、裝箱轉(zhuǎn)換和取消裝箱轉(zhuǎn)換。
分享:Asp.net中DataTable導(dǎo)出到Excel的方法介紹本篇文章介紹了,Asp.net中DataTable導(dǎo)出到Excel的方法。需要的朋友參考下
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- .net全局定時(shí)定期執(zhí)行某些操作在Global.asax中具體實(shí)現(xiàn)
- .Net網(wǎng)站的web.config配置說(shuō)明
- asp.net2.0學(xué)習(xí)歷程-菜鳥(niǎo)到中級(jí)程序員的飛躍
- ASP.NET生成靜態(tài)HTML頁(yè)面并分別按年月目錄存放
- ASP.NET及JS中的cookie基本用法
- 用事實(shí)說(shuō)話!AJAX應(yīng)用程序開(kāi)發(fā)七宗罪
- ASP.NET筆記之文章發(fā)布管理小系統(tǒng)案例
- 怎樣解決asp.net URL傳值出現(xiàn)錯(cuò)誤的問(wèn)題
- 淺析ASP.NET中前臺(tái)javascript與后臺(tái)代碼調(diào)用
- Asp.net FMS 開(kāi)發(fā)視頻網(wǎng)站
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-.net中as和is之間的區(qū)別分析
。