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"
 };
相关推荐
xiaoshuaishuai828 分钟前
C# GPU算力与管理
开发语言·windows·c#
hez20103 小时前
C# 15 类型系统改进:Union Types
c#·.net·.net core
FL16238631293 小时前
基于C#winform部署软前景分割DAViD算法的onnx模型实现前景分割
开发语言·算法·c#
C#程序员一枚4 小时前
高可用(High Availability, HA)
数据库·c#
weixin_520649875 小时前
C#进阶-特性全知识点总结
开发语言·c#
fengyehongWorld6 小时前
C# 创建vba用的类库
c#
澄澈青空~6 小时前
有一个叫R2C,也有一个叫G2C
java·数据库·人工智能·c#
PGFA8 小时前
深度剖析 C# LINQ 底层执行机制:别让你的应用内存莫名其妙“爆”掉!
c#·solr·linq
2601_9498146910 小时前
如何使用C#与SQL Server数据库进行交互
数据库·c#·交互
CSharp精选营11 小时前
C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生
c#·try-catch·事务处理·transactionscope