题
看来我需要使用一种打破在各种情况的框在我开声明,使用。
我可以看到这的原因在其他语言,你可以倒过来的情况下发言。
它是可能的情况下块掉下来的其他情况下块?
非常感谢,真的感谢!
解决方案
是,可以以两种方式下降到下一个case块。您可以使用空的情况下,这并不需要休息,也可以使用goto
跳转到下一个(或任何)情况:
switch (n) {
case 1:
case 2:
case 3:
Console.WriteLine("1, 2 or 3");
goto case 4;
case 4:
Console.WriteLine(4);
break;
}
其他提示
“破发”的执法是有没有停止错误。如果需要强制下降得来速然后用“的goto case”(替换适当的值)
下面的例子显示,你可以做什么:
switch(n)
{
case 1:
case 2:
//do something for 1+2
//...
goto case 3;
case 3:
//do something for 3, and also extra for 1+2
//...
break;
default:
//do something for all other values
//...
break;
}
请参阅 http://msdn.microsoft.com /en-us/library/06tc147t%28VS.80%29.aspx
C#不支持隐含的下降,通过构造,但是 break
(或 goto
)但是必须有(msdn).你唯一能做的就是堆叠的情况下在以下方式:
switch(something) {
case 1:
case 2:
//do something
break;
case 3:
//do something else
}
但是, break
(或者另一个跳跃发言喜欢 goto
)就需要在那里。
在我的C#(.NET 1.1,CF)码,这两种被允许:
switch (_printerChoice)
{
case BeltPrintersEnum.ZebraQL220:
return new ZebraQL220Printer();
break;
case BeltPrintersEnum.ONeal:
return new ONealPrinter();
break;
default:
return new ZebraQL220Printer();
break;
}
switch (_printerChoice)
{
case BeltPrintersEnum.ZebraQL220:
return new ZebraQL220Printer();
case BeltPrintersEnum.ONeal:
return new ONealPrinter();
default:
return new ZebraQL220Printer();
}
...但在,他们是灰色的休息时间,所以认为没有实际意义。所以,至少在我的情况,他们被允许,但不是必需的。
不隶属于 StackOverflow