gpt4 book ai didi

c# - 通过 switch 语句掉线(有时有效?)

转载 作者:行者123 更新时间:2023-11-30 18:57:10 26 4
gpt4 key购买 nike

我有一个 switch 语句,如下所示:

switch (condition)
{
case 0:
case 1:
// Do Something
break;
case 2:
// Do Something
case 3:
// Do Something
break;
}

我收到一个编译错误,告诉我 Control 不能从一个 case 标签('case 2:')落到另一个

嗯……是的,你可以。因为您正在从 case 0:case 1: 执行此操作。

事实上,如果我删除我的 case 2: 及其相关任务,代码会编译并从 case 0: 落入 case1:.

那么这里发生了什么,我怎样才能让我的 case 语句失败并执行一些中间代码?

最佳答案

堆叠标签和 fall-through 是有区别的。

C# 支持前者:

case 0:
case 1:
break;

但不是失败:

case 2:
// Do Something
case 3:
// Do Something
break;

如果你想要失败,你需要明确:

case 2:
// Do Something
goto case 3;
case 3:
// Do Something
break;

原因很明显,隐式的失败会导致代码不干净,尤其是当你有不止一两行代码时,并且控制流的方式不再清晰。通过强制显式失败,您可以轻松地遵循流程。

引用:msdn

关于c# - 通过 switch 语句掉线(有时有效?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12390245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com