协助识别用户输入

时间:2019-02-11 21:06:51

标签: c#

Console.WriteLine("Type start to start");
string abc = Console.ReadLine();
if (abc = "start");

因此,我想用我从观看3个有关C#的教程中学到的知识进行测验,但是我似乎无法找到一种方法来识别用户是否编写了start。帮助吗?

2 个答案:

答案 0 :(得分:3)

这应该可以完成

Console.WriteLine("Type start to start");
string input = Console.ReadLine();
if (input == "start"){
    //DoSomething
}

答案 1 :(得分:2)

代码的问题是您使用的是赋值运算符=,而不是比较运算符==。进行单个更改将使您的代码按预期运行。

但是,除非您要允许用户输入其他内容,否则最好让他们按下任意键以开始操作(如果他们不想启动,为什么要在该位置键入任何内容,可能会更好)所有?)。如果这是一个选项,则可以使用Console.ReadKey方法,该方法从控制台窗口读取(并返回)下一次按键。

例如:

Console.WriteLine("Press any key to continue...");
Console.ReadKey();

如果您确实想检查它们输入的内容(例如,在菜单系统中),则可能需要进行不区分大小写的比较,而不是对硬编码的字符串使用==。在这种情况下,Equals类的string方法具有一个重写,使您可以指定不区分大小写的比较:

// An endless loop, until the user enters a valid command, when we break or exit.
while (true)
{
    Console.Write("Type 'start' to begin, or 'quit' to exit: ");
    string input = Console.ReadLine();

    if (input.Equals("start", StringComparison.OrdinalIgnoreCase))
    {
        // They entered 'start', so we can exit the loop and start our code
        Console.WriteLine("Program starting!");
        break; // This exits the 'while' loop, and the program continues
    }

    if (input.Equals("quit", StringComparison.OrdinalIgnoreCase))
    {
        // Exit the program (the whole program quits so we don't need a break
        Environment.Exit(0);
    }
    else
    {
        // Let them know the input was invalid, and the loop will continue
        Console.WriteLine("That is not a recognized command, please try again");
    }
}

// Code execution will continue here if they type "start"
Console.Write("\nDone! Press any key to exit...");
Console.ReadKey();