欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C#8中如何實(shí)現(xiàn)模式匹配-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)C#8中如何實(shí)現(xiàn)模式匹配,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),行唐企業(yè)網(wǎng)站建設(shè),行唐品牌網(wǎng)站建設(shè),網(wǎng)站定制,行唐網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,行唐網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

C# 7 里面的Pattern Mathing

更多內(nèi)容請(qǐng)查看官方文檔:https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-8#more-patterns-in-more-places?WT.mc_id=DT-MVP-5003302

 is 模式

C#8中如何實(shí)現(xiàn)模式匹配

switch 和 when

C#8中如何實(shí)現(xiàn)模式匹配

C# 8 里面的Pattern Matching

使用Deconstructor 和 位置匹配模式

下面兩個(gè)類(lèi)Teacher和Student都由構(gòu)造函數(shù)(Constructor)和Deconstructor:

C#8中如何實(shí)現(xiàn)模式匹配

C#8中如何實(shí)現(xiàn)模式匹配

下面我想寫(xiě)一個(gè)方法判斷學(xué)生是不是5年級(jí)并且是學(xué)數(shù)學(xué)的:

C#8中如何實(shí)現(xiàn)模式匹配

這里我們就用到了Student的Deconstructor和位置匹配模式,這里面的下劃線叫做“discard”(丟棄),表示我們不會(huì)使用它不關(guān)心它。

如果代碼這樣寫(xiě),那么傳進(jìn)來(lái)的任何學(xué)生都滿(mǎn)足這個(gè)匹配。

如果想判斷5年紀(jì)的學(xué)生,我們可以這樣寫(xiě):

C#8中如何實(shí)現(xiàn)模式匹配

還想判斷他的老師是否教數(shù)學(xué),可以這樣寫(xiě):

C#8中如何實(shí)現(xiàn)模式匹配

注意,這里面調(diào)用的都是Deconstructor。

實(shí)際上,我們可以把Deconstructor的類(lèi)型去掉,像這樣:

C#8中如何實(shí)現(xiàn)模式匹配

實(shí)際上針對(duì)這種需求,使用if語(yǔ)句可能更好,更容易維護(hù)。但是如果循環(huán)嵌套的情況下無(wú)法使用if,那么這種位置模式匹配就有用了。

屬性匹配模式

位置匹配模式很強(qiáng)大,但是可閱讀性太差,下面看看屬性匹配模式。

還是之前的需求:

C#8中如何實(shí)現(xiàn)模式匹配

我想這個(gè)一看就明白,不需要解釋了吧?

而且這個(gè)方法可以寫(xiě)的更通用一些:

C#8中如何實(shí)現(xiàn)模式匹配

參數(shù)類(lèi)型改為object,然后先判斷它是不是Student,在判斷是否是5年級(jí)學(xué)數(shù)學(xué)的。

Swtich 表達(dá)式

有三個(gè)形狀的類(lèi),它們的屬性各不相同:

C#8中如何實(shí)現(xiàn)模式匹配

下面我要寫(xiě)一個(gè)方法,根據(jù)不同的形狀,顯式相應(yīng)的信息。這里我會(huì)使用C# 8 的 switch表達(dá)式。

先從最簡(jiǎn)單的只有一種情況開(kāi)始:

C#8中如何實(shí)現(xiàn)模式匹配

方法參數(shù)的類(lèi)型是object,然后使用C# 8的switch表達(dá)式,該表達(dá)式有返回值,所以可以把返回值放到變量里面然后返回。

C#8中如何實(shí)現(xiàn)模式匹配 

可以看到,switch表達(dá)式里面沒(méi)有case 關(guān)鍵字,這里使用的是lambda表達(dá)式。

這句話(huà)的意思就是,如果shape是Rectangle類(lèi)型的,那么我們可以通過(guò)r這個(gè)變量來(lái)訪問(wèn)它,右側(cè)的字符串就是這個(gè)case表達(dá)式的值,這里的返回值就是一個(gè)字符串。

把三個(gè)形狀都寫(xiě)上,就是這樣:

C#8中如何實(shí)現(xiàn)模式匹配 

注意,這里沒(méi)有break或者return。并且switch表達(dá)式不支持“接盤(pán)”(fall through)。

那么默認(rèn)情況怎么添加呢?這里我們使用discard匹配模式:

C#8中如何實(shí)現(xiàn)模式匹配

這里我們還可以使用屬性匹配模式來(lái)設(shè)置過(guò)濾條件:

C#8中如何實(shí)現(xiàn)模式匹配

使用嵌套的switch表達(dá)式,也可以達(dá)到同樣的目的:

C#8中如何實(shí)現(xiàn)模式匹配

最后我們可以讓整個(gè)方法更簡(jiǎn)化一點(diǎn),使用expression-bodied方法:

C#8中如何實(shí)現(xiàn)模式匹配

但還是不要過(guò)度使用這種嵌套的模式,畢竟人類(lèi)還需要閱讀你的代碼。。。

元組匹配模式

先定義一個(gè)枚舉:

C#8中如何實(shí)現(xiàn)模式匹配

然后寫(xiě)一個(gè)方法,傳進(jìn)兩個(gè)顏色,得到混合后的顏色:

C#8中如何實(shí)現(xiàn)模式匹配

這里面用的就是元組匹配模式。

最下面還判斷了兩種顏色都一樣的情況,以及其它所有情況。

關(guān)于“C#8中如何實(shí)現(xiàn)模式匹配”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

分享題目:C#8中如何實(shí)現(xiàn)模式匹配-創(chuàng)新互聯(lián)
分享URL:http://chinadenli.net/article6/ceppog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、小程序開(kāi)發(fā)建站公司、外貿(mào)建站網(wǎng)站制作、Google

廣告

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

成都網(wǎng)站建設(shè)
欧美黑人在线一区二区| 欧美一级特黄大片做受大屁股| 日本人妻的诱惑在线观看| 亚洲中文字幕高清视频在线观看| 综合久综合久综合久久| 国产精品偷拍视频一区| 久久永久免费一区二区| 成年女人午夜在线视频| 亚洲三级视频在线观看免费| 日韩中文字幕人妻精品| 最好看的人妻中文字幕| 激情丁香激情五月婷婷| 日韩一级毛一欧美一级乱| 亚洲国产四季欧美一区| 最近日韩在线免费黄片| 中文字幕欧美视频二区| 久久综合日韩精品免费观看| 亚洲精选91福利在线观看| 麻豆91成人国产在线观看| 国产剧情欧美日韩中文在线| 亚洲国产黄色精品在线观看| 日本在线高清精品人妻| 91欧美亚洲视频在线| 婷婷伊人综合中文字幕| 欧美精品亚洲精品一区| 国产偷拍精品在线视频| 亚洲乱码av中文一区二区三区| 日本 一区二区 在线| 欧美一级特黄大片做受大屁股| 国产成人免费激情视频| 超碰在线播放国产精品| 日本少妇三级三级三级| 亚洲国产av一二三区| 视频一区二区三区自拍偷| 色一情一乱一区二区三区码| 男人和女人干逼的视频| 一区二区三区日韩中文| 又大又紧又硬又湿又爽又猛| 日本道播放一区二区三区| 中文字幕日产乱码一区二区| 亚洲欧美国产精品一区二区|