免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      快速測(cè)試表達(dá)式是否具有某一特性:C# 中的模式匹配

      C# 中的模式匹配

      模式匹配是測(cè)試表達(dá)式是否具有某一特性的方法。C# 提供了非常簡(jiǎn)潔優(yōu)雅的語(yǔ)法用于匹配模式并在匹配時(shí)執(zhí)行相應(yīng)的操作。

      檢查匹配

      模式匹配最高頻的場(chǎng)景是確保值不為 null。

      public void IsMatch(int? number) { if (number is int n) { Console.WriteLine(#34;參數(shù) ‘number’ 具有值{n}”); } else { Console.WriteLine(“參數(shù)值為null”); } }

      上述代碼使用 is 檢查 number 是否有值,若有,則賦給新變量 n。注意,新變量?jī)H在 if 語(yǔ)句塊中有效。

      離散值匹配

      檢查參數(shù)是否等于指定的值。支持的類型包括字符串和枚舉,從 C# 11 開(kāi)始,還支持 Span 和 ReadOnlySpan。

      public string ConstantMatch(string? name) => name switch { “張三” => “我是張三”, “李四” => “我是李四”, _ => #34;我不知道自己是誰(shuí)” }; public string ConstantMatch(ReadOnlySpan name) => name switch { “張三” => “我是張三”, “李四” => “我是李四”, _ => #34;我不知道自己是誰(shuí)” };

      上面的代碼,根據(jù) type 參數(shù)的值來(lái)返回不同的字符串。棄用符號(hào) _ 表示未在類表中定義的任意其它值,包括 null。

      類型匹配

      模式匹配的另一用途是檢查值是否與給定類型匹配。

      public string TypeMatch(Animal? animal) => animal switch { Cat => “發(fā)現(xiàn)喵咪一只”, Dog => “發(fā)現(xiàn)汪汪一只”, null => “毛都沒(méi)發(fā)現(xiàn)”, _ => #34;發(fā)現(xiàn)不知道是啥的一個(gè)東西” };

      上面的代碼,根據(jù) animal 參數(shù)的實(shí)際類型返回不同的字符串。棄元符號(hào) _ 表示未列出的任意其它值。

      關(guān)系匹配

      關(guān)系匹配可以將數(shù)值與常量進(jìn)行比較。

      public string RelationalMatch(int age) => age switch { “嬰兒”, “幼兒”, “兒童”, “少年”, _ => “成年” };

      上述代碼根據(jù) age 的值大小返回不同的值。棄元符號(hào) _ 表示未列出的任意其它值。

      關(guān)系匹配模式還可以使用 and 和 or 來(lái)組合條件。

      public static string GetWaterState(int temperature) => temperature switch { (> 0) and ( “液體”, “固體”, > 100 => “氣體”, 0 => “固體/液體臨界點(diǎn)”, 100 => “液體/氣體臨界點(diǎn)”, };

      屬性匹配

      還可以對(duì)指定對(duì)象的屬性進(jìn)行匹配,可以實(shí)現(xiàn)多個(gè)參數(shù)同時(shí)檢查。

      public record Order(int Items, decimal Cost); public decimal CalculateDiscount(Order order) => order switch { (Items: > 10, Cost: > 1000.00m) => 0.10m, (Items: > 5, Cost: > 500.00m) => 0.05m, Order { Cost: > 250.00m } => 0.02m, null => throw new ArgumentNullException(nameof(order)), var someObject => 0m, };

      上面的代碼中,前兩項(xiàng)檢查 Items 和 Cost 屬性的值。第三項(xiàng)只檢查了 Cost 屬性的值。第四項(xiàng)檢查是否為 null,第五項(xiàng)匹配任意其它值。

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年7月11日 18:43
      下一篇 2022年7月11日 18:43

      相關(guān)推薦

      • 11月27日哈爾濱疫情最新消息:昨日新增本土85+183

        黑龍江省最新疫情通報(bào) 11月26日0-24時(shí),全省新增本土確診病例132例(含無(wú)癥狀感染者轉(zhuǎn)確診病例25例)。哈爾濱市85例(香坊區(qū)22例、南崗區(qū)17例、道里區(qū)17例、呼蘭區(qū)7例、…

        2022年11月27日
      • 漢中昨日新增本土4+3 11月27日漢中疫情最新通報(bào)

        11月26日陜西新增51例本土確診病例 新增902例本土無(wú)癥狀感染者 11月26日0-24時(shí),新增報(bào)告本土確診病例51例(輕型49例、普通型2例),其中安康28例(1例為無(wú)癥狀轉(zhuǎn)確…

        2022年11月27日
      • 渭南疫情最新情況11月27日通報(bào):昨日新增本土7+17

        11月26日陜西新增51例本土確診病例 新增902例本土無(wú)癥狀感染者 11月26日0-24時(shí),新增報(bào)告本土確診病例51例(輕型49例、普通型2例),其中安康28例(1例為無(wú)癥狀轉(zhuǎn)確…

        2022年11月27日
      • 存儲(chǔ)過(guò)程語(yǔ)法(sql server存儲(chǔ)過(guò)程語(yǔ)法)

        今天小編給各位分享存儲(chǔ)過(guò)程語(yǔ)法的知識(shí),其中也會(huì)對(duì)sql server存儲(chǔ)過(guò)程語(yǔ)法進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧! oracle存儲(chǔ)過(guò)程基本語(yǔ)法…

        2022年11月26日
      • 今天杭州疫情最新消息:0-10時(shí)新增1+28

        11月26日0-10時(shí),杭州新增1例本土新冠病毒肺炎確診病例(輕型),為主動(dòng)就診發(fā)現(xiàn);杭州新增28例新冠病毒無(wú)癥狀感染者,12例為卡口攔截發(fā)現(xiàn),9例為集中隔離點(diǎn)檢出,6例為居家隔離…

        2022年11月26日
      • 11月26日齊齊哈爾市疫情最新消息通報(bào):昨日本土無(wú)癥狀感染者69例

        11月25日0-24時(shí),全省新增本土確診病例134例(含無(wú)癥狀感染者轉(zhuǎn)確診病例9例)。哈爾濱市117例(南崗區(qū)29例、香坊區(qū)28例、道里區(qū)22例、呼蘭區(qū)9例、道外區(qū)8例、松北區(qū)6例…

        2022年11月26日
      • 鄭州市疫情11月26日最新消息通報(bào):昨日新增本土180+777

        11月25日0—24時(shí),河南省新增本土確診病例186例(鄭州市180例,其中91例為隔離管控發(fā)現(xiàn)、3例為重點(diǎn)人群篩查發(fā)現(xiàn)、40例為社區(qū)篩查發(fā)現(xiàn)、40例為主動(dòng)就診發(fā)現(xiàn)、5例為無(wú)癥狀感…

        2022年11月26日
      • 11月26日黑河市疫情最新消息通報(bào):昨日新增本土3+26

        11月25日0-24時(shí),全省新增本土確診病例134例(含無(wú)癥狀感染者轉(zhuǎn)確診病例9例)。哈爾濱市117例(南崗區(qū)29例、香坊區(qū)28例、道里區(qū)22例、呼蘭區(qū)9例、道外區(qū)8例、松北區(qū)6例…

        2022年11月26日
      • 11月26日佳木斯市疫情最新消息通報(bào):昨日新增本土5+14

        11月25日0-24時(shí),全省新增本土確診病例134例(含無(wú)癥狀感染者轉(zhuǎn)確診病例9例)。哈爾濱市117例(南崗區(qū)29例、香坊區(qū)28例、道里區(qū)22例、呼蘭區(qū)9例、道外區(qū)8例、松北區(qū)6例…

        2022年11月26日
      • 11月26日綏化市疫情最新消息通報(bào):昨日新增本土5+105

        11月25日0-24時(shí),全省新增本土確診病例134例(含無(wú)癥狀感染者轉(zhuǎn)確診病例9例)。哈爾濱市117例(南崗區(qū)29例、香坊區(qū)28例、道里區(qū)22例、呼蘭區(qū)9例、道外區(qū)8例、松北區(qū)6例…

        2022年11月26日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息