C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證

這篇文章給大家分享的是有關(guān)C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

成都創(chuàng)新互聯(lián)公司專(zhuān)注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、青神網(wǎng)絡(luò)推廣、成都小程序開(kāi)發(fā)、青神網(wǎng)絡(luò)營(yíng)銷(xiāo)、青神企業(yè)策劃、青神品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供青神建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:muchs.cn

環(huán)境:

Windows 2008, VS 2008 SP1, Asp.Net Mvc 1.0

一. 可能是最原始的驗(yàn)證代碼

為了讓問(wèn)題盡量簡(jiǎn)單,我們就拿一個(gè)簡(jiǎn)單得不能再簡(jiǎn)單的User類(lèi)開(kāi)刀吧。

C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證

現(xiàn)在我們要在User類(lèi)里面加一個(gè)方法用于驗(yàn)證User實(shí)例的合法性,相信很多人寫(xiě)過(guò)如下類(lèi)似的代碼:

C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證

Check()方法很單純的為User類(lèi)的屬性應(yīng)用各種規(guī)則,然后返回非法的提示信息集。

驗(yàn)證的時(shí)候只是簡(jiǎn)單的調(diào)用一下實(shí)體的Check()方法即可:

C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證

好吧,我承認(rèn),一般情況下這個(gè)方法似乎夠用了,只不過(guò),很多人看到一連串的if可能會(huì)開(kāi)始抓狂了,是呀,我也不喜歡,那就想個(gè)最即便的辦法消除它們吧。

二. 基于C#3.0新特性的嘗試

為了消除if,考慮把那些驗(yàn)證規(guī)則用一條線鏈起來(lái),于是:

編寫(xiě)實(shí)體類(lèi)的驗(yàn)證擴(kuò)展方法如下:

C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證

那么實(shí)體的Check()方法相應(yīng)改為:

C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證

這樣,我們通過(guò)擴(kuò)展方法,消除了if,但是我們把驗(yàn)證規(guī)則鏈了起來(lái),并已異常的方式來(lái)拋出實(shí)體非法信息,那么每次驗(yàn)證只能得到一條驗(yàn)證信息,這顯然往往不符合實(shí)際情況。想想..

三. 繼續(xù)演進(jìn)

接上,為了得到驗(yàn)證錯(cuò)誤信息集合,改進(jìn):

為了讓代碼看起來(lái)更像那么回事,給實(shí)體加個(gè)基類(lèi)吧,就叫EntityBase了。

C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證

然后編寫(xiě)一個(gè)驗(yàn)證類(lèi):

C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證

然后看下修改后的Check()方法,這個(gè)驗(yàn)證類(lèi)的作用就一目了然了:

C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證

不用解釋吧?其實(shí)也是鏈起來(lái),同時(shí)返回驗(yàn)證錯(cuò)誤信息集合,看看結(jié)果:

C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證

C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證

感謝各位的閱讀!關(guān)于“C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

本文標(biāo)題:C#中如何實(shí)現(xiàn)實(shí)體驗(yàn)證
網(wǎng)頁(yè)網(wǎng)址:http://muchs.cn/article42/pjjsec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化、網(wǎng)站改版、網(wǎng)站排名、動(dòng)態(tài)網(wǎng)站手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)