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

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

概述参见英文答案 > Switch statement fallthrough in C#?                                    14个 我最近继承了一些写得很差的代码.不幸的是,它是一个我们高度依赖的系统,而且没有时间重新编写它,所以我坚持维护它并重新编写文件.但是,今天我偶然发现这个包含一个开关的方法,其中一个case语句没有中断.这怎么能编译?我的理解是所有案件 参见英文答案 > 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 Badge\nNear The Reader";                        break;                    case "AddNewUser":                        lblSwipestatus.Text = "Pass ID Badge\nNear The Reader\nFor: " + mUsername;                        break;                    default:                        lblSwipestatus.Text = "Pass ID Badge\nNear The Reader\nFor: " + mUsername;                        break;                }            }        }        catch (Exception ex)        {            MessageBoxNoClick.MessageBox2(ex.Message,"Error Message");        }    }
解决方法 这个结构:

case "logonManager":case "normalUse":    lblSwipestatus.Text = "Pass ID Badge\nNear The Reader";    break;

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

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

case "logonManager" || "normalUse":    lblSwipestatus.Text = "Pass ID Badge\nNear The Reader";    break;

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

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

总结

以上是内存溢出为你收集整理的c# – 交换机中的案例怎么可能没有中断?全部内容,希望文章能够帮你解决c# – 交换机中的案例怎么可能没有中断?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1224559.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存