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

ops/2024/11/14 12:45:35/

前置知识: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
}

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

 

 


http://www.ppmy.cn/ops/97197.html

相关文章

ubuntu 安装node

安装node 由于项目使用node 16.x开发,因此在Jenkins上,安装node 16.x 使用curl下载NodeSource的安装脚本: curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - 安装Node.js: sudo apt-get install -y nodejs验证…

[Day 59] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈的共識算法優化 前言 區塊鏈作為一種顛覆性的分布式賬本技術,其核心在於共識機制的設計。不同的共識算法如比特幣的工作量證明(Proof of Work, PoW)、以太坊的權益證明(Proof of Stake, PoS)以及其他如授權證明(Proof of Authority, PoA)、委託權益證明(Delegated Proof…

杭州百腾教育科技 TiDB 6.5 to 7.5 升级记录

作者: reAsOn2010 原文来源: https://tidb.net/blog/612103f3 背景 使用 TiDB 作为我们的全量数据库已经有六七年了,当时还是 2.0 版本。早期TiDB的迭代和新特性的发布对于实际使用的影响还是很大的,所以从那个时候开始就有每…

Windows Server 2012 R2服务器安装CVE-2024-38077补丁KB5040456的安装及问题解决

Windows 远程桌面授权服务远程代码执行漏洞CVE-2024-38077,该漏洞影响: 远程执行代码,漏洞最高严重性: 严重。本文记录了Windows Server 2012 R2服务器补丁KB5040456的安装及报错“此更新不适用于你的计算机”的问题解决过程。 一、漏洞相关信息 1.影响…

「OC」探索CALayer:基础知识与实用技巧简要介绍

「OC」探索CALayer:基础知识与实用技巧简要介绍 文章目录 「OC」探索CALayer:基础知识与实用技巧简要介绍前言认识CALayerCALayer的相关属性 UIView和CALayer区别联系创建UIView和CALayer的原因 开始创建CALayer视图层级CALayers 和 Sublayersposition与…

鸿蒙HarmonyOS实战:IPC与RPC设备内进程通信

基本 IPC(Inter-Process Communication)与RPC(Remote Procedure Call)用于实现跨进程通信,不同的是前者使用Binder驱动,用于设备内的跨进程通信,后者使用软总线驱动,用于跨设备跨进…

如何快速进入医疗器械维修行业

在当今医疗技术飞速发展的时代,医疗器械维修行业作为医疗服务的重要支撑,展现出了广阔的发展前景和就业机会。对于那些有志于进入这一领域的人来说,掌握正确的方法和途径至关重要。 首先,扎实的知识储备是进入医疗器械维修行业的…

以太网交换基础

1.以太网协议介绍 以太网是当今现有局域网(Local Area Network, LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。 冲突域 冲突域是指连接在同一共享介质上的所有节点的集合,冲突域内所有…