我的控制台应用程序在代码中使用 ReadKeys;如果一个人在 ReadKey 未激活时单击某个键,我推测它会被添加到某种队列中,因此当代码到达 readKey 时,它会立即继续前一个按键并继续,就好像那个键被按下。有没有办法来解决这个问题?
编辑:为了澄清,轴向按键会影响尚未运行的 ReadKeys
您可以检查输入流中是否有任何可用的键,然后读取下一个键。
可以在这里找到一个非常好的解决方案:Clear Console Buffer
这里有另一个类似的解决方案:https ://newbedev.com/csharp-c-console-clear-input-buffer-code-example
// while there are characters in the input stream
while(Console.KeyAvailable)
{
// read them and ignore them
Console.ReadKey(false); // true = hide input
}
// Now read properly the next available character
Console.ReadKey();