看来我需要使用一种打破在各种情况的框在我开声明,使用。

我可以看到这的原因在其他语言,你可以倒过来的情况下发言。

它是可能的情况下块掉下来的其他情况下块?

非常感谢,真的感谢!

有帮助吗?

解决方案

是,可以以两种方式下降到下一个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();         
}

...但在,他们是灰色的休息时间,所以认为没有实际意义。所以,至少在我的情况,他们被允许,但不是必需的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top