我正在编写一个小型的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'
请帮忙吗?
提前致谢。
答案 0 :(得分:14)
KeyChar
是char
而"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 ...