加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 交换机中的案例怎么可能没有中断?

发布时间:2020-12-15 19:40:08 所属栏目:百科 来源:网络整理
导读:参见英文答案 Switch statement fallthrough in C#?????????????????????????????????????14个 我最近继承了一些写得很差的代码.不幸的是,它是一个我们高度依赖的系统,而且没有时间重新编写它,所以我坚持维护它并重新编写文件.但是,今天我偶然发现这个包含一
参见英文答案 > Switch statement fallthrough in C#?????????????????????????????????????14个
我最近继承了一些写得很差的代码.不幸的是,它是一个我们高度依赖的系统,而且没有时间重新编写它,所以我坚持维护它并重新编写文件.但是,今天我偶然发现这个包含一个开关的方法,其中一个case语句没有中断.这怎么能编译?我的理解是所有案件都必须打破,返回或转到.

private void ReadBadge_Activated(object sender,EventArgs e)
    {
        try
        {
            if (!bInHideMode)
            {
                // Set Button states
                btnCancelSwipe.Visible = true;
                btnCancelSwipe.Refresh();

                // Enable the Timeout timer
                //tmrTimeout.Enabled = true;

                // Refresh data
                switch (mManageAction)
                {
                    case "LogOnManager":
                    case "NormalUse":
                        lblSwipeStatus.Text = "Pass ID BadgenNear The Reader";
                        break;
                    case "AddNewUser":
                        lblSwipeStatus.Text = "Pass ID BadgenNear The ReadernFor: " + mUserName;
                        break;
                    default:
                        lblSwipeStatus.Text = "Pass ID BadgenNear The ReadernFor: " + mUserName;
                        break;
                }
            }
        }
        catch (Exception ex)
        {
            MessageBoxNoClick.MessageBox2(ex.Message,"Error Message");
        }
    }

解决方法

这个结构:

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

基本上意味着第二种情况下的代码将用于任何一种情况.因此,两种情况都使用相同的代码.

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

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

除了这不编译为该switch语句的有效条件. (可能有几个原因,如果你想获得真正的技术,但主要是因为这评估为bool并且交换机在字符串上运行.)所以你找到的版本代替了这个工作.

当省略break语句时(或者,更具体地说,当case块为空时),无论下一种情况使用什么值,该过程都将继续进行下一种情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读