使用switch case构造我将能够进入一个功能

Hen*_*ies 0 c#

给出以下代码段:

case "add":
   goto add();
   return;
case "subtract":
    goto subtract();
    return;
case "multiply":
   goto multiply();
   return;
case "division":
   goto divide();
   return;
default:
     {
         Console.WriteLine("Invalid choice"):
     }
     break;
Run Code Online (Sandbox Code Playgroud)

使用switch case我可以使用goto关键字带我到我想要的功能吗?如果没有,我将如何实现这一目标?

Sam*_*ach 7

您不能使用goto关键字,只需调用该方法即可.

所以

string methodName = Foo.GetMethodNameToCall();

      switch(methodName)
      {
          case "add":
               add();
               break;
          case "subtract":
                subtract();
                break;
          case "multiply":
               multiply();
               break;
          case "division":
               divide();
               break;
          default:
              {
                   Console.WriteLine("Invalid choice"):
                   break;
              }
       }
Run Code Online (Sandbox Code Playgroud)

您可能也希望使用break而不是return在您的情况下.

  • "你不需要" - 描述这个的更好方法是"你*不能*"."1.6.6 goto goto语句将程序执行转移到程序中的某个标签." - [Eric Huss'*C库参考指南*](http://www.acm.uiuc.edu/webmonkeys/book/c_guide /) (2认同)