Чтение цифровых символов под Mono
Я разрабатываю консольное приложение, которое должно прослушивать цифры с цифровой клавиатуры в обоих состояниях num lock - вкл. И выкл. Приложение работает на Raspberry Pi с Arch Linux и Mono. Поскольку я не нашел способа компиляции в Mono для постоянного включения numlock, я использую следующий метод для преобразования команд num pad в цифры:
private string ReadNumPadSymbol(ConsoleKeyInfo keyInfo)
{
char editedSymbol;
switch (keyInfo.Key)
{
case ConsoleKey.Insert:
editedSymbol = '0';
break;
case ConsoleKey.End:
editedSymbol = '1';
break;
case ConsoleKey.DownArrow:
editedSymbol = '2';
break;
case ConsoleKey.PageDown:
editedSymbol = '3';
break;
case ConsoleKey.LeftArrow:
editedSymbol = '4';
break;
case ConsoleKey.Clear:
editedSymbol = '5';
break;
case ConsoleKey.RightArrow:
editedSymbol = '6';
break;
case ConsoleKey.Home:
editedSymbol = '7';
break;
case ConsoleKey.UpArrow:
editedSymbol = '8';
break;
case ConsoleKey.PageUp:
editedSymbol = '9';
break;
default:
return String.Empty;
}
return editedSymbol.ToString();
}
Он работает, как и ожидалось, в Windows, но в Linux метод возвращает пустую строку, когда нажата кнопка "5". По некоторым причинам это не входит в случай ConsoleKey.Clear. можно ли это исправить?
Спасибо!