推荐答案
// www.javascriptcn.com code example
int day = 3;
string dayName = day switch
{
1 => "Monday",
2 => "Tuesday",
3 => "Wednesday",
4 => "Thursday",
5 => "Friday",
6 => "Saturday",
7 => "Sunday",
_ => "Invalid day"
};
Console.WriteLine(dayName); // 输出: Wednesday本题详细解读
1. 基本语法
C# 8.0 引入了 switch 表达式,它提供了一种更简洁的方式来处理基于模式匹配的条件分支。与传统的 switch 语句不同,switch 表达式返回一个值,并且语法更加紧凑。
2. 语法结构
switch 表达式的基本语法如下:
result = expression switch
{
pattern1 => result1,
pattern2 => result2,
...
_ => defaultResult
};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表达式返回的值必须与目标类型兼容。