Как подавить нажатие клавиши на консоль в .NET?

Я переношу небольшую консольную игру на С++ на С#, и кажется, что я не могу остановить нажатие клавиш на консоль.

В С++ я получаю нажатие клавиши с помощью этого метода, который также подавляет нажатия клавиш на консоль:

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

Я попытался сделать эквивалент в С#, выполнив:

Key = Console.ReadKey();

Но это не подавляет символ от печати на консоль, что вызывает очевидные проблемы. Любые идеи о том, как исправить это?

Ответы

Ответ 1

Вы хотите Console.ReadKey(true)

Получает следующий символ или функциональную клавишу, нажатую пользователем. В окне консоли отображается нажатая клавиша.

Аргумент - который называется перехватом:

Определяет, следует ли отображать нажатую клавишу в окне консоли. true, чтобы не отображать нажатую клавишу; в противном случае false.