You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 8.0 switch expression单个分支能否执行多个操作?

C# switch 表达式多操作分支问题解答

结论1:你示例的写法不可行

C# 8.0 引入的 switch 表达式每个匹配分支的=>后仅允许跟单个表达式,不支持直接用逗号分隔多个方法调用或执行语句。

结论2:可以通过语句Lambda包装实现类似效果,非必要不推荐

如果一定要用 switch 表达式实现单分支多操作,可以将多个执行逻辑封装到语句Lambda中,配合委托调用实现,示例代码如下:

// switch 表达式本身必须返回值,无业务需要时可用弃元 _ 接收
_ = example switch
{
    1 => new Action(() => 
    {
        doThing1();
        doThing2();
    })(),
    2 => doThing3(),
    _ => throw new Exception()
};

最佳实践建议

如果你的逻辑是无返回值的纯操作,不需要使用switch结构的返回结果,优先使用传统switch语句,可读性更高,无需为了使用新语法强行套写增加理解成本。


内容的提问来源于stack exchange,提问作者tholomew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:09:13