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

C# switch语句使用位运算符时出现CS0152重复标签错误如何解决

CS0152 错误原因说明

核心原因是你写的case (2 | 4):在编译阶段计算出的常量值就是6,和后续显式声明的case 6:标签重复,违反了C# switch语句中case标签值必须唯一的规则。

具体运算逻辑说明

C#中|是按位或运算符,不是“匹配多个值”的语法:

  • 整数2的二进制为 010
  • 整数4的二进制为 100
  • 按位或运算规则为对应二进制位只要有一个为1结果就为1,最终计算结果为 110,对应十进制值就是6

所以你写的case (2 | 4):和case 6:是完全等价的重复标签,编译器因此报错。

若你需要匹配2或4走同一个分支,正确写法如下

switch(aVal)
{
    case 2:
    case 4:
    {
        // 对应业务逻辑
        break;
    }
    case 5:
    {
        break;
    }
    case 6:
    {
        break;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:06:04