C# Unity 面向对象补全计划 之 Switch 表达式(c# 8.0++)

2024-08-21 06:04

本文主要是介绍C# Unity 面向对象补全计划 之 Switch 表达式(c# 8.0++),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前置知识:lambda表达式,枚举与Switch(传统语法)C# & Unity 面向对象补全计划 之 匿名函数与Lambda表达式-CSDN博客

C# 8.0引入了 switch 表达式,是一个语法糖(类的属性get set就是一种语法糖)

基本规则:

var result = expression switch {pattern1 => result1,pattern2 => result2,..._ => defaultResult
};
  • expression 是你要检查的值
  • pattern1pattern2, … 是你要匹配的模式
  • result1result2, … 是对应模式匹配成功时的结果
  • _ 是默认模式,相当于传统 switch 语句中的 default

 实战演示:

传统枚举和Switch

// See https://aka.ms/new-console-template for more information
Age myAge = Age.young;
SelectAge(myAge);void SelectAge(Age age){ switch (age) {case Age.kid:Console.WriteLine("小孩");break;case Age.young:Console.WriteLine("年轻");break;case Age.middleAge:Console.WriteLine("中年");break;case Age.old:Console.WriteLine("老年");break;default:break;} 
}
public enum Age:int{kid,young,middleAge,old
}

都什么年代了还在用传统Switch!?

// See https://aka.ms/new-console-template for more information
Age myAge = Age.young;
SelectAge(myAge);void SelectAge(Age age){var result = age switch {Age.kid => "小孩",Age.young => "年轻",Age.middleAge => "中年",Age.old => "老年",_ => null};Console.WriteLine(result);
}
public enum Age:int{kid,young,middleAge,old
}

可以看到在这个语法糖之中,返回值会被更加轻松简单地运用

 

 

这篇关于C# Unity 面向对象补全计划 之 Switch 表达式(c# 8.0++)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092321

相关文章

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

C# foreach 循环中获取索引的实现方式

《C#foreach循环中获取索引的实现方式》:本文主要介绍C#foreach循环中获取索引的实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、手动维护索引变量二、LINQ Select + 元组解构三、扩展方法封装索引四、使用 for 循环替代

C# Where 泛型约束的实现

《C#Where泛型约束的实现》本文主要介绍了C#Where泛型约束的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用的对象约束分类where T : structwhere T : classwhere T : ne

Spring Boot 集成 Quartz并使用Cron 表达式实现定时任务

《SpringBoot集成Quartz并使用Cron表达式实现定时任务》本篇文章介绍了如何在SpringBoot中集成Quartz进行定时任务调度,并通过Cron表达式控制任务... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启动 Sprin

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程