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

控制器如何从一个开关盒转到另一个开关盒而没有中断c#?

发布时间:2020-12-15 20:45:59 所属栏目:百科 来源:网络整理
导读:刚刚开始使用C#,我知道如果至少有一个语句,你不能从一个switch case转到另一个.错误:控制无法从一个案例落到另一个案例. 只是为了有趣的东西,我尝试了这个: char c = 'a'; switch (c) { case 'a': Console.WriteLine("yes"); goto JumpToNextCase; case 'b
刚刚开始使用C#,我知道如果至少有一个语句,你不能从一个switch case转到另一个.错误:控制无法从一个案例落到另一个案例.

只是为了有趣的东西,我尝试了这个:

char c = 'a';
        switch (c)
        {
            case 'a':
                Console.WriteLine("yes");
                goto JumpToNextCase;
            case 'b':
                 JumpToNextCase:
                Console.WriteLine("Kiddin me?");
                break;

        }

这有效!怎么可能?我现在没有违反从一个案件跳到另一个案件的规则吗?任何令人满意的答案?

解决方法

是的,限制只是为了防止在99%的情况下出现意外和错误.

但是,如果您认为自己希望它能够正常工作,那么您甚至不需要使用标签来使其正常工作.你可以使用goto跳转到不同的情况!

char c = 'a';
switch (c)
{
    case 'a':
        Console.WriteLine("yes");
        goto case 'b';
    case 'b':
        Console.WriteLine("Kiddin me?");
        break;
}

您也可以跳转到默认值. C#规范提到:

8.9.3 The goto statement The goto statement transfers control to a statement that is marked by a label.

06001

(…)

The target of a goto case statement is the statement list in the immediately enclosing switch statement (§8.7.2),which contains a case label with the given constant value.

(…)

The target of a goto default statement is the statement list in the immediately enclosing switch statement (§8.7.2),which contains a default label.

(编辑:李大同)

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

    推荐文章
      热点阅读