1

我的控制台应用程序在代码中使用 ReadKeys;如果一个人在 ReadKey 未激活时单击某个键,我推测它会被添加到某种队列中,因此当代码到达 readKey 时,它会立即继续前一个按键并继续,就好像那个键被按下。有没有办法来解决这个问题?

编辑:为了澄清,轴向按键会影响尚未运行的 ReadKeys

4

1 回答 1

0

您可以检查输入流中是否有任何可用的键,然后读取下一个键。

可以在这里找到一个非常好的解决方案: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();
于 2021-10-23T12:34:44.447 回答