小编Rus*_*lke的帖子

使用goto case(变量); 在C#开关

我正在为Visual Studio C#控制台中的课程编写文本冒险,并决定使用switch语句而不是if-elses链,因为goto情况有多么有用(到目前为止它已经非常有效).我知道交换机本身的每个案例都必须是一个常量,但我想知道这是否也扩展到使用goto情况.例如,我有:

switch (location)
{
case 1:
  break;
case 2:
  break;
case 3:
  break;
//I have 10 cases, each representing a location such as "Orc Cave", I just cut it down for brevity
default:
  break;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够输入一个整数变量,然后转到该整数,我有以下内容来完成:

string travel2 = Console.ReadLine();//inputs a integer representing each location
int travel2A = Convert.ToInt32(travel2);
if (1<=travel2A && travel2A<=10)
{
    goto case(travel2A);
}
else{
    goto case(2);//current location
}
Run Code Online (Sandbox Code Playgroud)

一切正常,但有一个"预期值不变"的警告(travel2A).是否可以通过一些调整使goto case输入变量,或者只是switch语句的限制?如果是后者,我可以做一个if-elses链,但在我看来,输入变量更方便.非常感谢任何帮助!谢谢!

c# goto switch-statement

3
推荐指数
1
解决办法
3322
查看次数

标签 统计

c# ×1

goto ×1

switch-statement ×1