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'
请帮忙好吗?
KeyChar
为char
, "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 ...