我正在处理我的程序的一小部分,处理输入,基本上我有这个小代码:
bool Done = false;
while (!Done)
{
ConsoleKeyInfo key = Console.ReadKey(true);
if (key.Key == ConsoleKey.Enter)
{
//Action
}
}
这样做的主要问题是,即使在操作之间,代码也会处理 ReadKey。
因此,如果您有一个菜单,您可以在其中按键,然后如果您在显示此消息时按任何按钮,它会说“您按下了:x”,那么 ReadKey
已经获得了新的 key 。
所以我想阻止任何进一步的输入,直到用户再次看到菜单。
最佳答案
不太确定这是否有意义,就我个人而言,我喜欢击键不会消失并且我可以提前输入的情况。但是你可以像这样刷新键盘缓冲区:
while (!Done)
{
while (Console.KeyAvailable) Console.ReadKey(true);
ConsoleKeyInfo key = Console.ReadKey(true);
// etc..
}
关于c# - 在完成特定任务之前禁用 C# 控制台中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5147327/