当前位置:首页 > 科技  > 软件

C# Switch 语句进阶:模式匹配详解与实例演示

来源: 责编: 时间:2024-04-07 17:05:26 113观看
导读在C#中,switch语句的模式匹配在C# 7.0及以上版本中引入。以下是switch语句中常见的模式及其使用方法的示例:1. 类型模式:优点: 用于检查对象的运行时类型,使代码更具可读性。public static string GetObjectType(object ob

mN628资讯网——每日最新资讯28at.com

在C#中,switch语句的模式匹配在C# 7.0及以上版本中引入。以下是switch语句中常见的模式及其使用方法的示例:mN628资讯网——每日最新资讯28at.com

1. 类型模式:

优点: 用于检查对象的运行时类型,使代码更具可读性。mN628资讯网——每日最新资讯28at.com

public static string GetObjectType(object obj){    switch (obj)    {        case int i:            return "整数类型";        case string s:            return "字符串类型";        case double d:            return "双精度浮点数类型";        default:            return "其他类型";    }}

2. 常量模式:

优点: 用于匹配对象是否等于某个常量值。mN628资讯网——每日最新资讯28at.com

public static string GetDayOfWeekName(DayOfWeek day){    switch (day)    {        case DayOfWeek.Monday:            return "星期一";        case DayOfWeek.Tuesday:            return "星期二";        case DayOfWeek.Wednesday:            return "星期三";        case DayOfWeek.Thursday:            return "星期四";        case DayOfWeek.Friday:            return "星期五";        default:            return "其他";    }}

3. 组合模式:

优点: 允许将多个模式组合在一起,形成更复杂的匹配条件。mN628资讯网——每日最新资讯28at.com

public static string GetInfo(object obj){    switch (obj)    {        case int i when i > 0:            return "正整数";        case int i when i < 0:            return "负整数";        case string s when s.Length > 10:            return "字符串长度大于10";        default:            return "其他";    }}

4. 属性模式:

优点: 用于匹配对象的属性,提供更灵活的条件判断。mN628资讯网——每日最新资讯28at.com

public static string GetPersonInfo(object person){    switch (person)    {        case { Age: > 18, Name: "Alice" }:            return "成年人 Alice";        case { Age: > 18, Name: "Bob" }:            return "成年人 Bob";        case { Age: <= 18, Name: "Alice" }:            return "未成年人 Alice";        default:            return "其他";    }}public class Person{    public string Name { get; set; }    public int Age { get; set; }}

5. 变量模式:

优点: 允许在模式中引入新的变量,提供更灵活的条件判断。mN628资讯网——每日最新资讯28at.com

public static string GetVariablePattern(object obj){    switch (obj)    {        case int i when i > 0:            return $"正整数:{i}";        case int i when i < 0:            return $"负整数:{i}";        case string s:            return $"字符串:{s}";        default:            return "其他";    }}
  • 模式匹配使得switch语句更为强大,能够更直观地表达条件逻辑。
  • 不同的模式适用于不同的场景,根据需求选择合适的模式,提高代码的可读性和可维护性。
  • 使用模式匹配可以减少代码中的重复,并提供更灵活的条件判断方式。

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-81733-0.htmlC# Switch 语句进阶:模式匹配详解与实例演示

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 详解WebSocketMessageBrokerConfigurer在SpringBoot中应用与实践

下一篇: 迈向高效Rust编程:实践中的最佳工作流与技巧

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • 十个简单但很有用的Python装饰器

    十个简单但很有用的Python装饰器

    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用
  • 三言两语说透柯里化和反柯里化

    三言两语说透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是两种很有用的技术,可以帮助我们写出更加优雅、泛用的函数。本文将首先介绍柯里化和反柯里化的概念、实现原理和应用
  • Python异步IO编程的进程/线程通信实现

    Python异步IO编程的进程/线程通信实现

    这篇文章再讲3种方式,同时讲4中进程间通信的方式一、 Python 中线程间通信的实现方式共享变量共享变量是多个线程可以共同访问的变量。在Python中,可以使用threading模块中的L
  • 阿里瓴羊One推出背后,零售企业迎数字化新解

    阿里瓴羊One推出背后,零售企业迎数字化新解

    作者:刘旷近年来随着数字经济的高速发展,各式各样的SaaS应用服务更是层出不穷,但本质上SaaS大多局限于单一业务流层面,对用户核心关切的增长问题等则没有提供更好的解法。在Saa
  • 冯提莫签约抖音公会 前“斗鱼一姐”消失在直播间

    冯提莫签约抖音公会 前“斗鱼一姐”消失在直播间

    来源:直播观察提起&ldquo;冯提莫&rdquo;这个名字,很多网友或许听过,但应该不记得她是哪位主播了。其实,作为曾经的&ldquo;斗鱼一姐&rdquo;,冯提莫在游戏直播的年代影响力不输于现
  • AI芯片初创公司Tenstorrent获三星和现代1亿美元投资

    AI芯片初创公司Tenstorrent获三星和现代1亿美元投资

    Tenstorrent是一家由芯片行业资深人士Jim Keller领导的加拿大初创公司,专注于开发人工智能芯片,该公司周三表示,已经从现代汽车集团和三星投资基金等
  • OPPO K11搭载长寿版100W超级闪充:26分钟充满100%

    OPPO K11搭载长寿版100W超级闪充:26分钟充满100%

    据此前官方宣布,OPPO将于7月25日也就是今天下午14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖
  • 联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将于秋季新品会上推出,官方按照惯例直接在发布会前给出了机型的所有参数。联想小新 Pad Pro 12.6 将搭载高通骁龙 870 处理器,重量为 5
Top
Baidu
map