C#Console.Readkey - 等待特定输入

时间:2011-10-28 15:10:58

标签: console keypress

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

我希望应用程序等待用户关于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'

请帮忙吗?

提前致谢。

4 个答案:

答案 0 :(得分:14)

KeyCharchar"Y"string

您需要KeyChar == 'Y'之类的内容。

答案 1 :(得分:4)

检查这个

string result = Console.ReadLine();

检查结果后

答案 2 :(得分:2)

你要找的是这样的东西

       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();
        }
    }

答案 3 :(得分:0)

您可能希望用户按Enter确认其响应,因此ReadLine是最佳选择。还将字符串响应转换为大写以进行通用比较检查。像这样:

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