Консоли C#.Readkey-ожидание определенного ввода
У меня есть небольшое консольное приложение 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'
любая помощь, пожалуйста?
спасибо заранее.
4 ответов
то, что вы ищете, - это что-то вроде этого
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 ...