我可以在开关语句中使用变量吗?

本文关键字:变量 开关 语句 我可以 | 更新日期: 2023-09-27 17:55:46

我正在编写一个基于文本的冒险,但遇到了问题。我正在尝试制作一个 switch 语句案例来处理您想要的每个检查操作,并且到目前为止正在为我的代码提供这个:

case "examine" + string x:
    //this is a method that I made that makes sure that it is an object in the area
    bool iseobj = tut.Check(x);
    if (iseobj)
        x.examine();
    else
        Console.WriteLine("That isn't an object to examine");
    break;

如何在 case 语句中使用变量?我希望任何以"examine"+(x)开头的字符串来触发大小写。

我可以在开关语句中使用变量吗?

您的方案比 switch 语句更适合if-else语句。在 C# 中,switch只能计算值,而不能计算表达式。这意味着您不能执行以下操作:

case input.StartsWith("examine"):

但是,您可以使用if语句来执行此操作!请考虑执行以下操作:

if (input.StartsWith("examine"))
{
    //this is a method that I made that makes sure that it is an object in the area
    bool iseobj = tut.Check(x);
    if (iseobj)
        x.examine();
    else
        Console.WriteLine("That isn't an object to examine");
}
else if (...) // other branches here