Я портирую маленькую консольную игру C++ на C#, и кажется, что я не могу мешать нажатиям клавиш быть распечатанным к консоли.
В C++ я получаю нажатие клавиши с этим методом, которые также подавляют нажатия клавиш от того, чтобы быть распечатанным до консоли:
bool Game::getInput(char *c)
{
if (_kbhit())
{
*c = _getch();
return true;
}
return false;
}
Я пытался сделать эквивалент в C# путем выполнения:
Key = Console.ReadKey();
Но это не подавляет символ от того, чтобы быть распечатанным до консоли, вызывая очевидные проблемы. Какие-либо идеи о том, как исправить это?
Вы хотите Console.ReadKey (true)
Получает следующий символ или функциональную клавишу, нажатую пользователем. Нажатая клавиша дополнительно отображается в окне консоли.
Аргумент, который называется перехват :
Определяет, отображать ли нажатую клавишу в окне консоли. истина , чтобы не отображать нажатую клавишу; в противном случае ложь .
Метод ReadKey
имеет перегрузку , которая принимает в качестве параметра логическое значение . Передайте true
, и он не будет отображать ввод в консоли.