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"
 };
相关推荐
唐青枫16 小时前
别再乱用 StartNew:C#.NET TaskFactory 任务调度实战详解
c#·.net
Artech1 天前
[MAF预定义的AIContextProvider-03]ChatHistoryMemoryProvider——赋予Agent从经验中学习的能力
ai·c#·agent·memory·maf
Scout-leaf3 天前
C#摸鱼实录——IoC与DI案例详解
c#
咕白m6253 天前
使用 C# 在 Excel 中应用多种字体样式
后端·c#
Artech3 天前
[MAF预定义的AIContextProvider-02]AgentSkillsProvider——将Agent Skills引入MAF
ai·c#·agent·agent skills·maf
2601_962072554 天前
李梦娇常识4600问|题库|打印版
sql·华为od·华为·c#·华为云·.net·harmonyos
m0_547486664 天前
《C#语言程序设计与实践》 全套PPT课件
c语言·c#·c语言程序设计
叶帆4 天前
【YFIOs】用C#开发硬件之设备上云
开发语言·unity·c#
IT方大同4 天前
(嵌入式操作系统)信号量
嵌入式硬件·c#
z落落4 天前
C# FileStream文件流读取文件
开发语言·c#