推荐答案
-- -------------------- ---- ------- --- --- - -- ------ ------- - --- ------ - - -- --------- - -- ---------- - -- ------------ - -- ----------- - -- --------- - -- ----------- - -- --------- - -- -------- ---- -- --------------------------- -- --- ---------
本题详细解读
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
表达式返回的值必须与目标类型兼容。