Как я подавляю нажатие клавиши, распечатанное к консоли в.NET?

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

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

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

Я пытался сделать эквивалент в C# путем выполнения:

Key = Console.ReadKey();

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

16
задан Keith Pinson 8 May 2017 в 19:01
поделиться

2 ответа

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

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

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

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

34
ответ дан 30 November 2019 в 16:30
поделиться

Метод ReadKey имеет перегрузку , которая принимает в качестве параметра логическое значение . Передайте true , и он не будет отображать ввод в консоли.

5
ответ дан 30 November 2019 в 16:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: