交换机中的情况如何不会中断?

这个问题在这里已经有了答案:

  • 在C#中切换语句贯穿始终? 14个答案

  • 这种结构:

    case "LogOnManager":
    case "NormalUse":
        lblSwipeStatus.Text = "Pass ID BadgenNear The Reader";
        break;
    

    基本上意味着第二种case的代码将用于任何一种case 。 所以这两种情况都使用相同的代码。

    在语义上,这可以被认为是:

    case "LogOnManager" || "NormalUse":
        lblSwipeStatus.Text = "Pass ID BadgenNear The Reader";
        break;
    

    除了这不作为该switch语句的有效条件编译。 (如果你想获得真正的技术,潜在的原因有两个,但主要是因为它的评估结果是一个bool ,而switch是在一个string上操作的。)所以你找到的版本代替了这个工作。

    break被省略的语句(或者,更具体地,当case块是空的),则过程将继续到任何下一个case ,不管使用的是下一个的值的case


    如果开关盒没有中断,那么它将在下一个案例中出现。 请注意,在C#中,只有在案例主体中没有任何内容的情况下才有效。

    从文档:

    C#不支持从一个案例标签到另一个案例标签的隐式下降。 一个例外是如果case语句没有代码。


    在这种情况下没有中断的情况仅仅意味着它将和它下面的情况一样。

    所以这些案例都会做同样的事情:

      case "LogOnManager":
      case "NormalUse":
                        lblSwipeStatus.Text = "Pass ID BadgenNear The Reader";
                        break;
    

    它被称为跌倒

    链接地址: http://www.djcxy.com/p/84477.html

    上一篇: How can a case in a switch not have a break?

    下一篇: Why does C++ require breaks in switch statements?