首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将旧的Switch()语法转换为新的c# 8

旧的Switch()语法是指在C# 7及以下版本中使用的Switch语句。C# 8引入了新的Switch()语法,它提供了更简洁和灵活的方式来编写条件分支逻辑。

新的Switch()语法使用关键字"switch"和"case"来定义条件分支。相较于旧的Switch语句,新的语法具有以下特点:

  1. 模式匹配:新的Switch()语法支持模式匹配,允许在case语句中使用更复杂的模式进行匹配。这包括类型模式、常量模式、变量模式、位置模式等。通过模式匹配,我们可以更精确地匹配特定的条件,并执行相应的代码块。
  2. 表达式主体:新的Switch()语法支持使用表达式作为每个case语句的返回值,而不仅仅是语句块。这使得代码更加简洁和易读。

下面是一个示例,展示如何将旧的Switch()语法转换为新的C# 8语法:

旧的Switch()语法:

代码语言:txt
复制
switch (variable)
{
    case value1:
        // 执行语句块1
        break;
    case value2:
        // 执行语句块2
        break;
    default:
        // 执行默认语句块
        break;
}

新的Switch()语法:

代码语言:txt
复制
variable switch
{
    value1 => expression1,
    value2 => expression2,
    _ => defaultExpression
};

在新的语法中,每个case语句都由值和箭头(=>)连接的表达式组成。如果没有匹配的值,则可以使用下划线(_)作为通配符来指示默认情况。

以下是对新的Switch()语法的一些说明:

  • "value1"和"value2"是要匹配的值。
  • "expression1"和"expression2"是与相应的case语句相关联的表达式。
  • "_ => defaultExpression"是默认情况下的表达式,如果没有任何case匹配。

总结一下,新的Switch()语法提供了更强大和灵活的条件分支逻辑编写方式,支持模式匹配和表达式主体。它可以帮助开发人员编写更简洁、可读性更高的代码。

(注:此答案中没有提及云计算相关内容,因为问题与云计算无关。如果需要关于云计算的帮助,请提供相关问题,我将很乐意为您解答。)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java 8之后的那些新特性(七): switch表达式 Switch Expressions

但其实在Java 12,13以及最终的17中,Java都引进与优化了与switch语句有关联的一个新特性,那就是switch表达式 这篇文章是Java 8之后的那些新特性系列的第七篇。...本系列的其它文章为: 1. Java 8之后的那些新特性(一):局部变量var 2. Java 8之后的那些新特性(二):文本块 Text Blocks 3....Java 8之后的那些新特性(三):Java System Logger 4. Java 8之后的那些新特性(四):网络请求 Java Http Client 5....Java 8之后的那些新特性(五):Helpful NullPointerExceptions 6....switch语句是大家熟悉的旧的switch用法,而 switch表达式则是我们今天要说的。 其实,从这两者之间的名字来看,就能猜到两者肯定有很大的相似性,也一定会有不同。

5.4K21
  • 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 201320152017 中开启新的 C# 7.x 和 C# 8 语法

    新版本的 C# 特性需要新版本的 Visual Studio 的支持。不过,如果你不介意修改项目的话,你也能在低版本的 Visual Studio 中获得高版本的 C# 语言支持了。...不同 Visual Studio 原生支持的 C# 版本 Visual Studio 每一次的重大发布都带来新的 C# 版本(至少在 Visual Studio 2017 之前是这样),于是通常情况下如果你使用了旧版本的...Visual Studio,还打不开编写了新 C# 语法的项目呢!...这是开发者计算机上的事情,不影响产品的 .NET Framework 版本需求。如果你连系统也比较旧,那么安装下最新版本的 .NET Framework 即可。...1 2 3 4 5 6 7 8 9 class Program { static async Task Main(string[] args) { Console.WriteLine

    45620

    域名更换后如何将旧的网站权重转移到新的网站(301重定向)

    我们可能会因为各种原因,不得不更换我们的域名,但旧的域名在搜索引擎上已经被收录过,具有一定的权重,如果我们贸然更换域名而不进行管理的话,那么以前的网站所拥有的权重将不复存在,如果旧域名的权重能转移到新域名那岂不美滋滋...注意:我们需要做的是全站301重定向,所以在我们更换域名后,一定要确保旧的站点是可以访问的,并且新的网站目录结构和链接要与旧的网站完全一致。...apache 使用 .htaccess 将旧域名 301 重定向到新域名 Options +FollowSymLinks RewriteEngine on RewriteRule (.*) https:...//www.newdomain.com/$1 [R=301,L] .htaccess一定是放在旧网站的根目录中,如果您的旧网站已经有该文件,直接修改即可 ngnix 推荐使用return指令,因为rewrite...使用rewrite,通过正则匹配所有的URI后再去掉开头第一个/(反斜线) rewrite ^/(.*)$ https://www.newdomain.com/$1; # 使用rewrite指令,不同的是通过

    3.3K20

    C#警告波预示未来将增加新的关键字

    作者 | Jonathan Allen 译者 | 平川 策划 | 丁晓昀 与 C# 9 和 10 一样,C# 11 也悄悄地增加了一个新的编译器警告。...该警告可以防止使用全部小写的类型名称(如类、结构和接口)。 创建这个警告是为了方便微软在未来添加新的关键字。...C# 的关键只包含小写 ASCII 字母,因此,加入其他任何字母都可以防止类型名称与未来的关键字发生冲突。 背    景 C# 工具链一直将其信息分为三大类:编译器错误、编译器警告和静态分析警告。...因为它们是默认启用的,添加新警告被认为是一种破坏性变化。如果添加了新的警告并启用了 TreatWarningsAsErrors,那么在 C#7 中可以编译的代码在 C#8 中可能会无法编译。...从 C# 9 开始,微软增加了 C# 警告波(Warning Waves)的概念。这是些附加的编译器警告,也就是说,不需要额外安装一个工具或包,它们默认是不启用的。

    31420

    java jsonobject转List_java – 将JSONObject转换为List或JSONArray的简单代码?「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 我已经通过各种线程阅读并发现了类似的问题,但在找到解决我的特定问题的方法方面却相当不成功....[{“locationId”:2,”quantity”:1,”productId”:1008}]}orr’s type = class org.json.simple.JSONObject 我正在尝试将这些数据放入数组.../列表/任何可以使用密钥的地方,470,471来检索数据....orderOneKey = (JSONObject)orderOne.get(0); System.out.println(orderOneKey.get(“productId”)); 这就是我所追求的,...编辑: 显然我无法回答8个小时的问题: 感谢朋友的帮助和一些摆弄,我发现了一个解决方案,我确信它不是最有说服力的,但它正是我所追求的: for(Object key: orr.keySet()) { JSONArray

    8.9K20

    【转】如何将MySQL数据目录更改为CentOS 7上的新位置

    无论您是增加更多空间,评估优化性能的方法,还是希望利用其他存储功能,本教程将指导您重新定位MySQL的数据目录。...无论您使用何种底层存储,本指南都可以帮助您将数据目录移到新的位置。...当有斜线时,rsync会将目录的内容转储到挂载点,而不是将其转移到包含的mysql目录中: sudo rsync -av /var/lib/mysql /mnt/volume-nyc1-01 一旦...改变后面的路径来反映新的位置。...总结 在本教程中,我们已经将MySQL的数据目录移到新的位置,并更新了SELinux以适应调整。尽管我们使用的是块存储设备,但是这里的说明应该适用于重新定义数据目录的位置,而不考虑底层技术。

    3K30

    引入“ Chitrakar”一个新的AI系统,该系统将人脸图像转换为Jordan曲线

    印度TCS机器人研究实验室的研究人员推出了一种名为“ Chitrakar”的人工智能(AI)系统,该系统将人脸的图像转换为可识别的非自相交环,称为Jordan曲线。...在TCS机器人研究实验室团队的帮助下,他建立了Chitrakar,该系统可以将图像转换为由一条直线形成的图形,并最终将其转换为Jordan曲线。Chitrakar表示在印地语/梵语中创作画作的人。...然后,将增强的图像贴上由TSP求解器连接的点(其中每个点都被视为旅行推销员的目的地)。相交去除技术将旅行商的最终路线转换为约旦曲线。...Chitrakar可以将人脸的任何图像自动转换为约旦曲线,该曲线可用于使用机械手来在纸上创建艺术素描。机器人抓手可以握住各种笔,用更细/更粗的线条,不同的颜色等绘制出不同的图画。...他们计划使用Style-GAN和其他生成模型从提供的照片中生成肖像,然后将其转换为铅笔素描。

    55110

    将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj

    将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj 发布于 2018-01-15 16:04...然而组织传统 .NET Framework 类库的 csproj 文件却极其庞大且难以理解。而本文将提供一种迁移方法,帮助你完成这样的迁移,以便体验新 csproj 文件带来的诸多好处。...其依赖的显示也非常简洁: ? 而传统的 csproj 文件是怎样的呢? 8"?...自动迁移 自动迁移的方法我写了一篇新的博客,请阅读 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference。...当然,目前自动迁移还只是 NuGet 引用方式的改变,加上文件通配符的帮助,我们的 csproj 文件即使依然是旧格式,也能非常简洁。

    1.5K20

    容器学习笔记之将Google的gcr.io、k8s.gcr.io 换为国内镜像

    "] } EOF 0x01 gcr.io镜像转换为国内镜像 根据开源项目: https://github.com/anjia0532/gcr.io_mirror 作者将gcr.io相关镜像pull下来,...然后push到docker官方仓库,相关转换语法如下: 使用语法 # 一般语法 gcr.io/namespace/image_name:image_tag anjia0532/namespace.image_name...:image_tag # 特别语法 k8s.gcr.io/{image}/{tag} gcr.io/google-containers/{image}/{tag} anjia0532...${image}${tag}" done 0x02 pull-google-container 工具脚本 K8S的exapmle里的yaml默认是k8s.gcr.io的镜像,为了方便运行我们可以预先拉取相关镜像...利用替换已有的yaml的方法 除了预先拉取镜像,我们还可以将k8s.gcr.io 替换为可执行镜像 为了方便替换,我们编写一个repair_yaml 脚本: # vim /usr/local/bin/repair_yaml

    2.7K30

    Eclipse中的新导入的Maven项目出现红色叹号以及旧的Maven项目无语法错误却显示红叉的解决办法

    问题:   从svn或者本地将maven工程导入到自己的IDE开发环境后,Maven工程上带有红色的感叹号报错信息,其他的没有红×报错。之后其他的Maven项目无语法错误却显示红叉,如下图所示: ?...附加:   其它原因,造成项目感叹号,且pom.xml和Build Path下又没有相应的错误的提示的情况下。     ...那么选择 Windows --> show view --> problems,在这个视图中查看问题的原因是什么。   ...其次还有一种可能是因为本地仓库中的jar文件有冲突,这个时候建议备份本地仓库,然后删除本地仓库,重新构建项目。这种方法不建议,重新构建项目,下载jar包特别慢!...我们可以比对jar包版本,排除低版本的jar。如下图所示: ?

    2.4K20

    JDK8的stream将list转Map对象时候报错:java.lang.IllegalStateException,解决

    JDK8有很多新特性,比如lambda表达式,函数式编程以及stream流的使用,这几个新特性,使用过之后就爱不释手了,比如将list集合通过stream可以直接转换成map对象。...语法: Map map = list.stream.stream().collect(Collectors.toMap(list集合中对象::get属性,list对象别名->list对象别名)); 示例...如下: 错误信息说,employeeId=4429的值在集合中有重复的。 这个时候怎么解决呢? 我们可以使用toMap的另一个重载方法。带有去重的方法。...语法: Collectors.toMap(keyMapper, valueMapper, mergeFunction) 源码: 参数说明:     前两个参数都是与之前一样 key 和 value得取值属性..., 第三个参数是当key 发生重复时处理的方法,注释上的解释如下: 简单一句话: 一种合并函数,用于解决两者之间的冲突与提供的相同键相关联的值到{@link Map#merge(Object, Object

    87820

    C#实现十六进制与十进制相互转换以及及不同进制表示案例分享

    C#中数字的进制表示形式对于进制的表示,编程语言基本上都提供了特殊前缀表示不同进制的数字,一般0x/0X表示16进制、0o/0O表示8进制、0b/0B表示2进制,十进制数字则没有特殊前缀,直接输入数字即可...C#中没有对8进制数字的直接表示形式。对于这个几乎用不到的历史遗留的进制,编程中很少会使用。通常比较常用的是2进制和16进制。...4Convert.ToInt32(hexStr,16)同理,可以根据需要,将2进制、8进制的字符串转换为10进制的int类型。...dec.ToString("x2") 或 dec.ToString("x") 中使用小写x,则转换为对应的小写的16进制字符串,比如15转换为"f"或"0f"。【X对应为大写】。...Convert.ToString()实现将数字转换为特定进制的字符串将decimal_2分别转换为16进制、8进制、2进制的字符串6var decimal_2 = 15;Console.WriteLine

    2.8K11

    C#历来语法特性总结

    扩展方法是一种静态方法,不过是通过实例对象语法进行调用,它的第一个参数指定方法操作的类型,用this修饰。编译器在编译为IL时会转换为静态方法的调用。...); switch表达式 从C# 8开始,可以使用switch表达式。.... ; return; // file is disposed here } 索引和范围 C# 8中添加了索引和范围功能,为访问序列中的单个元素或范围提供了简洁的语法。...该语法依赖两个新类型与两个新运算符: System.Index表示一个序列索引; System.Range表示序列的子范围; 末尾运算符^,使用该运算符加数字,指定倒数第几个; 范围运算符.....=合并赋值运算符:C# 8后可用,仅在左侧操作数的求值结果为null时,才将右操作数的值赋值给左操作数。否则,不会计算其右操作数。??=运算符的左操作数必须是变量、属性或索引器元素。 // ??

    42140

    电脑小白学习软件开发-C#的选择语句、异常捕获,进攻程序员

    我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下。 不得不说,C#这门语言是小编以为最好的语言。其优美的语法,最具人性化的新特性,以及无敌的开发工具令人陶醉。...接触过不少语言,却一直回味写C#的那种状态。 本人认为目前C#是比较适合入门的语言,最为小白,热衷于电脑编程开发的人,可谓是一个大大的福利。...语法讲解:if 可以理解为如果的意思。 if后面跟着小括号,小括号代表的是条件。条件成立则执行小括号后的大括号里面的内容。 例如上图流程大致为: else 表示 上面条件都不成立执行else的代码。...switch语法: 与if相比较来说switch就不怎么好用了。例如下图: ? //switch只能区别不同的单个项目。...判断s的值是什么,然后执行对应的代码, //所以我们把成绩,除以十 把它的商作为 switch项目 //break:代表:停止执行switch代码。

    45920

    细说枚举

    枚举是 C# 中最有意思的一部分,大部分开发人员只了解其中的一小部分,甚至网上绝大多数的教程也只讲解了枚举的一部分。那么,我将通过这篇文章向大家具体讲解一下枚举的知识。...对于枚举类型的变量,值不限于声明中命名的值,因此值能转换成基础类型,那么就能转换为枚举类型。之所以这么设计是因在以后的 API 中有很大的可能在不破换老版本的同时为枚举添加新的值。...字符串转换为枚举也很简单,同样用到了 Enum 基类的一个静态方法 Parse ,例如我们将 JP 转换为枚举 Country 的枚举值可以这么做 (Country)Enum.Parse(typeof(...3.枚举和数字之间转换 枚举转换为数字我们可以使用强转,例如 (int)Country.CN返回结果是 0 。...从数字转换为枚举我们有两种方法,一种是使用强转,另一种是使用 Enum 的静态方发 ToObject 。

    1.9K10
    领券