从一个开关盒移动到另一个开关盒

时间:2012-09-01 06:43:11

标签: c# .net switch-statement

我想从一个开关盒转移到另一个开关盒:

Switch()
{ 

}
c=console.readline();
switch(yup)
{
   case y:
   "I WANT TO CALL SWITCH 1;"
   case n:
   EXIT;
}

4 个答案:

答案 0 :(得分:1)

如果你想“调用另一个开关”,你必须将它提取为一个单独的方法,然后调用它。

public static void Main()
{
    MethodWithFirstSwitch();        

    c=console.readline();

    switch(yup)
    {
        case y:
        MethodWithFirstSwitch();
        case n:
        EXIT;
    }
}

private static void MethodWithFirstSwitch()
{
     switch(something)
     {
          case "something":
          break;
          default:
          break;
     }
}

我不确定这是否是您问题的准确答案。 你有一个开关,然后总是想运行一些代码,然后是一个新的开关,其中一个案例运行与以前相同的开关。

由于不存在变量和EXIT;调用,这当然不会按原样运行,而是作为示例。

如果这不能回答您的问题,请更新原始帖子,详细了解您要实现的目标。

答案 1 :(得分:0)

我认为这就是你想要的: -

switch(yup)
{
   case y:
   {
       //call your switch inside case y
       switch()
       {
         ----
         ----
       }
   }

   case n:
   EXIT;
}

答案 2 :(得分:0)

按字面意思做你要求的,你需要一个goto。然而,大多数人对goto非常不喜欢,因为它使您的代码很难理解,调试和维护。

通常我会使用do / while循环,检查您准备退出时设置的变量。像这样:

bool done = false;

do
{
    switch(/* ... */)
    {
        // ...
    }

    c = Console.ReadLine();

    switch(yup)
    {
        case y:
            break;
        case n:
            done = true;
            break;
    }
}
while(!done);

答案 3 :(得分:0)

 private void Form1_Load(object sender, EventArgs e)
    {
        MyFirstSwitch(true);
        //c=console.readline();
        string yup;
        switch (yup)
        {
            case "y":
                MyFirstSwitch(false);
                break;
            case "n":
                //Exit
                break;
        }
    }

    private void MyFirstSwitch(bool check)
    {
        switch (check)
        {
            case true:
                //Do some thing hereZ
                break;

            case false:
                //Do some thing hereZ
                break;
        }
    }