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

C#能否使用三元条件运算符执行语句而非仅返回表达式?

结论

你设想的自定义三目类语句运算符当前原生C#并不支持,但可以通过现有语法实现完全等价的简洁写法,无需写完整的if/else块。

原因说明

C# 原生的三元运算符?:本质是表达式,要求必须有明确的返回值,且不支持自定义全新的操作符符号(比如你举例的!?!?),所以你示例中的写法无法直接通过语法扩展实现。

替代实现方案(C# 7.0及以上版本支持)

可以借助弃元_ + 括号封装赋值表达式实现你要的效果,写法和三元运算符几乎一致:

// 完全等价于 if (isBob) { a = "Bob"; } else { b = "Steve"; }
_ = isBob ? (a = "Bob") : (b = "Steve");

这里的_是C#的弃元语法,不需要接收返回值,仅用来承接三元运算符的返回结果,执行逻辑和你预期的完全一致。

注意事项

如果分支内是多行语句逻辑,更推荐使用标准if/else块保证可读性,上述简化写法仅适合单语句的轻量分支场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:36:06