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

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

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

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

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

1. 类型模式:

优点: 用于检查对象的运行时类型,使代码更具可读性。cFD28资讯网——每日最新资讯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. 常量模式:

优点: 用于匹配对象是否等于某个常量值。cFD28资讯网——每日最新资讯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. 组合模式:

优点: 允许将多个模式组合在一起,形成更复杂的匹配条件。cFD28资讯网——每日最新资讯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. 属性模式:

优点: 用于匹配对象的属性,提供更灵活的条件判断。cFD28资讯网——每日最新资讯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. 变量模式:

优点: 允许在模式中引入新的变量,提供更灵活的条件判断。cFD28资讯网——每日最新资讯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语句更为强大,能够更直观地表达条件逻辑。
  • 不同的模式适用于不同的场景,根据需求选择合适的模式,提高代码的可读性和可维护性。
  • 使用模式匹配可以减少代码中的重复,并提供更灵活的条件判断方式。

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

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

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

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

标签:
  • 热门焦点
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • 6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    没有新品发布,自然iOS设备性能榜的上榜设备就没有什么更替,仅仅只有跑分变化而产生的排名变动,毕竟苹果新品的发布节奏就是这样的,一年下来也就几个移动端新品,不会像安卓厂商,一
  • 女孩租房开2小时空调用完100元电费引热议:5级能耗惹不起 月薪过万电费也交不起

    近日,江苏苏州一女孩租房当天充值了100元电费,开着空调不到2小时发现电费已用完。对于为什么这个快,房东表示,电表坏了这种情况很多,之前也遇到过,给租客换
  • JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • 服务存储设计模式:Cache-Aside模式

    Cache-Aside模式一种常用的缓存方式,通常是把数据从主存储加载到KV缓存中,加速后续的访问。在存在重复度的场景,Cache-Aside可以提升服务性能,降低底层存储的压力,缺点是缓存和底
  • 为什么你不应该使用Div作为可点击元素

    按钮是为任何网络应用程序提供交互性的最常见方式。但我们经常倾向于使用其他HTML元素,如 div span 等作为 clickable 元素。但通过这样做,我们错过了许多内置浏览器的功能。
  • 雅柏威士忌多款单品价格大跌,泥煤顶流也不香了?

    来源 | 烈酒商业观察编 | 肖海林今年以来,威士忌市场开始出现了降温迹象,越来越多不断暴涨的网红威士忌也开始悄然回归市场理性。近日,LVMH集团旗下苏格兰威士忌品牌雅柏(Ardbeg
  • 2天涨粉255万,又一赛道在抖音爆火

    来源:运营研究社作者 | 张知白编辑 | 杨佩汶设计 | 晏谈梦洁这个暑期,旅游赛道彻底火了:有的「地方」火了&mdash;&mdash;贵州村超旅游收入 1 个月超过 12 亿;有的「博主」火了&m
  • iQOO 11S新品发布会

    iQOO将在7月4日19:00举行新品发布会,推出杭州亚运会电竞赛事官方用机iQOO 11S。
Top