C# 从 switch 语句到 switch 表达式

一、传统 switch 语句

必须写 break,漏写可能有隐藏 bug。强调做什么,如果是A就怎样,如果是B就怎样。

cs 复制代码
string name = "John";

switch (name)
{
    case "John":
        // Do something for John
        break;

    case "Jane":
        // Do something for Jane
        break;

    default:
        // Do something for everyone else
        break;
}

二、switch 表达式

没有 break、每一项必须返回一个值、下划线 _ 表示 default。

cs 复制代码
int score = 100;

string level = score switch
{
    100 => "满分",
    >= 90 => "优秀",
    >= 60 => "及格",
    _ => "不及格"
};

三、switch 表达式 VS if / else

推荐 switch 表达式的场景:

1、有明确输入 → 输出

2、分支互斥

3、不依赖外部状态

if 语句:

cs 复制代码
string GetStatus(int code)
 {
     if (code == 200) return "OK";
     if (code == 404) return "Not Found";
     if (code == 500) return "Server Error";
     return "Unknown";
 }

switch 表达式:

cs 复制代码
 string GetStatus(int code) => code switch
 {
     200 => "OK",
     404 => "Not Found",
     500 => "Server Error",
     _ => "Unknown"
 };
相关推荐
WarrenMondeville3 小时前
1.Unity面向对象-单一职责原则
unity·设计模式·c#
寒风暖哥5 小时前
Oracle视图查询返回空数据集的分析
oracle·c#
万兴丶5 小时前
Unity用C#完成抖音小游戏接入引力引擎(Gravity Engine)完整指南,一篇文章讲清楚!
unity·c#·游戏引擎·抖音
福赖6 小时前
《C#反射机制》
开发语言·c#
向上的车轮6 小时前
熟悉C#如何转TypeScript?
开发语言·typescript·c#
我是唐青枫7 小时前
C#.NET ReaderWriterLockSlim 深入解析:读写锁原理、升级锁与使用边界
开发语言·c#·.net
The Sheep 20237 小时前
C# 操作XML
xml·前端·c#
JosieBook8 小时前
【C#】C# 中的 enum、struct 和 class 对比总结
开发语言·算法·c#
Scout-leaf9 小时前
WPF新手村教程(七)—— 终章(MVVM架构初见杀)
c#·wpf
ZoeJoy810 小时前
机器视觉C# 调用相机:从 USB 摄像头到海康工业相机(WinForms & WPF)
数码相机·c#·wpf