有没有办法让我的开关/案例落到C#的下一个案例中?
我正在使用switch / case语句来处理已部署应用程序的一些更新。 基本上,我想通过案例来执行从当前运行版本到最新版本的更新。
从Visual Studio对我大喊大叫,我了解到C#不允许进入下一个案例(正是我想要做的)。 从这个问题 ,我学会了如何做我想做的事。 但是,它仍然显然是一个错误。
我得到的是
switch (myCurrentVersion) { case null: case "": case "0": UpdateToV1(); goto case "1"; case "1": UpdateToV2(); }
我在行case "1":
上收到以下错误:
错误1控件不能从一个案例标签(’case“1”:’)转到另一个案例标签
难道我做错了什么? 我怎么能强迫它掉下来?
你需要添加一个break
语句,即使它是最后一种情况:
switch (myCurrentVersion) { case null: case "": case "0": UpdateToV1(); goto case "1"; case "1": UpdateToV2(); break; }
这是一个很好的例子,说明措辞不当的错误信息会造成混淆。 这里实际违反的C#规则并不是控件从一个开关部分落到另一个开关部分; 这是每个交换机部分的终点必须是不可达的。 权利的错误应该是这样的
情况“1”的开关部分的端点不得到达; 考虑添加’break;’
当我们重新审视Roslyn项目的switch语句的语义分析时,我会看看我们是否可以更改一下这一点的措辞,以便更清楚。
有关此问题和相关问题的更多分析,请参阅我关于此主题的文章 。
您的case "1"
分支没有break
。
break;
在UpdateToV2();
你不能摆脱goto case "1"
因为它会落到那个吗?
上述就是C#学习教程:有没有办法让我的开关/案例落到C#的下一个案例中?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/949240.html