C#:switch

C#中的 `case` 关键字用于 `switch` 语句中,定义不同条件分支的匹配值,配合 `switch` 实现多分支选择控制。
1. 传统 switch-case 结构:`switch` 后跟表达式,每个 `case` 后跟常量值和冒号,匹配时执行对应代码块。
   - 每个 `case` 分支末尾需用 `break`、`return` 或 `goto` 等跳转语句结束,防止代码继续执行到下一个分支。
   - `default` 分支可选,用于处理所有 `case` 都不匹配的情况,通常放在最后。
   - 支持多个 `case` 标签指向同一代码块,实现多值匹配。
2. 支持的类型:`switch` 表达式可以是整型、字符型、字符串型或枚举类型,`case` 常量值必须与表达式类型一致。
3. 代码示例:
int day = 2;
switch(day)
{
case 1: Console.WriteLine("Monday"); break;
case 2: Console.WriteLine("Tuesday"); break;
default: Console.WriteLine("Invalid day"); break;
}
新特性有哪些用法

1. 模式匹配(C#7.0+):`case` 可直接进行类型检查和变量捕获,无需先转换类型。
   - 例如:`case Circle c:` 可直接将对象转换为 `Circle` 类型并使用变量 `c`。
   - 支持 `when` 子句添加额外条件,如 `case Rectangle r when r.Width == r.Height:`。
2. switch 表达式(C8.0+):更简洁的写法,直接返回值而非执行语句块。
   - 例如:`string result = x switch { int n => $"int {n}", string s => $"string {s}", _ => "other" };`
   - 支持关系模式(如 `< 0`、`>= 90`)、属性模式、列表模式等高级匹配。
3. 关系模式与逻辑组合:可使用 `and`、`or`、`not` 组合条件,如 `case >= 80 and <= 100:`。
常见使用场景

1. 字符串匹配:根据用户输入的字符串执行不同分支,如判断水果类型。
2. 枚举匹配:处理枚举值,如根据 `DayOfWeek` 枚举输出对应星期。
3. 数值范围判断:配合关系模式判断分数等级、测量值范围等。
4. 对象类型分支:根据不同对象类型执行不同逻辑,如计算不同几何形状的面积。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值