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"
 };
相关推荐
游乐码18 小时前
c#变长关键字和参数默认值
学习·c#
全栈小519 小时前
【C#】合理使用DeepSeek相关AI应用为我们提供强有力的开发工具,在.net core 6.0框架下使用JsonNode动态解析json字符串,如何正确使用单问号和双问号做好空值处理
人工智能·c#·json·.netcore·deepseek
wearegogog12319 小时前
基于C#的TCP/IP通信客户端与服务器
服务器·tcp/ip·c#
A_nanda1 天前
C#调用Quartz.NET的完整实现。
c#·.net·quartz
2501_930707781 天前
使用C#代码在 PowerPoint 演示文稿中插入表格
开发语言·c#·powerpoint
少控科技1 天前
C#基础训练营 - 01 - 数据类型
开发语言·c#
1314lay_10071 天前
Vue3 + Element Plus项目和C# .Net 7.0 Core后端API项目发布部署到服务器
服务器·前端·javascript·vue.js·elementui·c#·.net
郝亚军1 天前
c#如何编译、通过icd文件生成static_model.c和static_model.h
开发语言·c#
Traced back1 天前
保姆级C#进阶教程:从入门到企业级开发,小白也能秒懂!
开发语言·c#
柒儿吖1 天前
CharLS 无损 JPEG-LS 库在 OpenHarmony 的 lycium 适配与 ctest 验证
c++·华为·c#·harmonyos