C# 中 switch 表达式的用法

· 约 3 分钟读完 · 第 118 / 183 章

推荐答案

本题详细解读

1. 基本语法

C# 8.0 引入了 switch 表达式,它提供了一种更简洁的方式来处理基于模式匹配的条件分支。与传统的 switch 语句不同,switch 表达式返回一个值,并且语法更加紧凑。

2. 语法结构

switch 表达式的基本语法如下:

  • expression 是要匹配的表达式。
  • pattern 是匹配的模式,可以是常量、类型模式、属性模式等。
  • result 是匹配成功时返回的结果。
  • _ 是默认情况,类似于传统 switch 语句中的 default。

3. 示例解析

在推荐答案中,day 是一个整数变量,表示一周中的某一天。switch 表达式根据 day 的值返回对应的星期名称。

  • 如果 day 是 1,返回 "Monday"。
  • 如果 day 是 2,返回 "Tuesday"。
  • 如果 day 是 3,返回 "Wednesday"。
  • 以此类推,直到 7 返回 "Sunday"。
  • 如果 day 的值不在 1 到 7 之间,返回 "Invalid day"。

4. 与传统 switch 语句的对比

传统的 switch 语句需要显式地使用 break 语句来防止贯穿,而 switch 表达式则不需要。此外,switch 表达式可以直接返回一个值,使得代码更加简洁。

5. 适用场景

switch 表达式适用于需要根据某个值返回不同结果的场景,尤其是在处理枚举、常量或模式匹配时。它可以使代码更加简洁和易读。

6. 注意事项

  • switch 表达式必须覆盖所有可能的情况,或者使用 _ 作为默认情况。
  • switch 表达式返回的值必须与目标类型兼容。