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

如何在switch模式匹配中使用int值,无需when子句实现范围匹配?

问题解答

你要的这种写法在C#里有两种实现方式,取决于是否需要捕获求和后的变量:

  • 不需要捕获变量时,直接用关系模式(C# 9.0及以上支持),不需要when子句:
var result = (a + b) switch
{
    > 0 => a + b,
    _ => 0 // 必须包含默认分支,否则编译不通过
};
  • 如果一定要捕获求和结果到sum变量中,那必须搭配when子句,因为var模式本身是匹配所有值的,需要when来过滤条件:
var result = (a + b) switch
{
    var sum when sum > 0 => sum,
    _ => 0
};

不存在不用when子句就能同时捕获变量并过滤值类型条件的语法,你之前的伪代码逻辑只能通过上述两种方式实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:10:22