如何在.NET中抑制打印到控制台的按键?

我正在将一个小型C ++控制台游戏移植到C#,似乎我无法阻止按键被打印到控制台。

在C ++中,我使用此方法获得击键,这也可以抑制击键被打印到控制台:

bool Game::getInput(char *c) { if (_kbhit()) { *c = _getch(); return true; } return false; } 

我尝试通过以下方式在C#中执行等效操作:

 Key = Console.ReadKey(); 

但这并不能抑制字符被打印到控制台,从而导致明显的问题。 关于如何解决这个问题的任何想法?

你想要Console.ReadKey(true)

获得用户按下的下一个字符或function键。 按下的键可选地显示在控制台窗口中。

参数 – 被称为拦截

确定是否在控制台窗口中显示按下的键。 如果不显示按下的键,则为true ; 否则,是的。

ReadKey方法有一个以bool作为参数的重载 。 传入true ,它不会在控制台中显示输入。