我正在处理程序的一小部分,处理输入,基本上我有这个小代码:
bool Done = false;
while (!Done)
{
ConsoleKeyInfo key = Console.ReadKey(true);
if (key.Key == ConsoleKey.Enter)
{
//Action
}
}
这个问题的主要问题是代码甚至会在操作之间处理ReadKey。
因此,如果你有一个菜单,你可以按键然后它会说“你按下:x”如果你按下任何按钮,同时它会显示这条消息,ReadKey
已经获得了这个新密钥。
所以我想阻止任何进一步的输入,直到用户再次看到菜单。
答案 0 :(得分:5)
不太确定这是否有意义,个人我喜欢它,当击键没有消失,我可以提前输入。但是你可以像这样刷新键盘缓冲区:
while (!Done)
{
while (Console.KeyAvailable) Console.ReadKey(true);
ConsoleKeyInfo key = Console.ReadKey(true);
// etc..
}
答案 1 :(得分:0)
你不能阻止输入, 即使你不处理它,它也会进入键盘缓冲区。
你可以简单地停止将它们从缓冲区中取出。