c#控制台.Readkey -等待特定的输入

本文关键字:输入 等待 控制台 Readkey | 更新日期: 2023-09-27 18:12:53

我正在编写一个小的c#控制台应用程序。

我希望应用程序等待用户关于Y或N按键的指令(如果按下任何其他键,应用程序会忽略这一点,并等待Y或N,然后运行依赖于Y或N答案的代码。

我有了这个想法,

while (true)
{
    ConsoleKeyInfo result = Console.ReadKey();
    if ((result.KeyChar == "Y") || (result.KeyChar == "y"))
    {
         Console.WriteLine("I'll now do stuff.");
         break;
    }
    else if ((result.KeyChar == "N") || (result.KeyChar == "n"))
    {
        Console.WriteLine("I wont do anything");
        break;
    }
}

遗憾的是,VS说它不喜欢这个结果。Keychat ==作为操作数不能应用于'char'或'string'

请帮忙好吗?

c#控制台.Readkey -等待特定的输入

KeyCharchar, "Y"string

你想要的是KeyChar == 'Y'

请改为

string result = Console.ReadLine();

然后检查结果

你要找的东西是这样的:

void PlayAgain()
{
    Console.WriteLine("Would you like to play again? Y/N: ");
    string result = Console.ReadLine();
    if (result.Equals("y", StringComparison.OrdinalIgnoreCase) || result.Equals("yes", StringComparison.OrdinalIgnoreCase))
    {
        Start();
    }
    else
    {
        Console.WriteLine("Thank you for playing.");
        Console.ReadKey();
    }
}

您可能希望用户通过按enter键来确认他们的响应,因此最好使用ReadLine。还要将字符串响应转换为大写以进行通用比较检查。像这样:

string result = Console.ReadLine();
if (result.ToUpper().Equals("Y"))
{
    // Do what ya do ...