把功能放在c#中

时间:2012-11-27 19:03:55

标签: c# switch-statement

我有一个开关声明:

swtich(x)
{
    case 1:
           ...
           break;
    case 2:
           ...
           break;
}

我想把...代码放在一个函数中,但我想把它放在那里......所以我想要那样的东西

void func()
{
     ...;
     break;
}

swtich(x)
{
    case 1:
           func();
    case 2:
           func();
}

Break给出了错误(我知道为什么),但我能做什么?

4 个答案:

答案 0 :(得分:2)

你做不到。你能做的最好的是:

swtich(x)
{
    case 1:
           func();
           break;
    case 2:
           func();
           break;
}

有关休息的讨论,请参阅here

  

break语句终止它出现的最近的封闭循环或switch语句。控制权将传递给终止语句后面的语句(如果有)。

如果你把它放在一个函数中,它将如何知道它应该应用于哪个循环或switch语句?

答案 1 :(得分:2)

您不能将break放在另一种方法中。

虽然您希望case 1case 2做同样的事情,但这是合法的:

switch (x)
{
    case 1:
    case 2:
        func();
        break;
}

答案 2 :(得分:2)

正如其他人所说,这是不可能的。以这种方式看待,当执行到达break;行时,如果你不在switch语句中,那么预期的行为会是什么?

在函数调用后放置break;语句。如果希望函数在给定条件下停止执行,请使用return;语句。

答案 3 :(得分:1)

不要在中断函数。简单明了。

switch(x)
{
    case 1:
           func();
           break;
    case 2:
           func();
           break;
}