У меня есть немного C# консольное приложение, которое считывает ключ и проверяет, является ли ключ был знак вопроса:ConsoleKeyInfo, вопросительный знак и портативность
ConsoleKeyInfo ki = System.Console.ReadKey();
if (ki.ConsoleKey.Oem2) // Do something
Я прибыл в Oem2
, видя, что значение на самом деле назначенный в отладчике, потому что для вопросительного знака нет ConsoleKey code.
Теперь я мог бы использовать ki.KeyChar
, но приложение также должно отвечать на определенные клавиши (например, медиа-ключи), которые не отображаются на символы. Для определения того, какой ключ на самом деле был нажат, необходимо проверить как ConsoleKey
, так и KeyChar
. С другой стороны, не стоит полагаться на Oem2
, чтобы всегда отображаться на ?
во всех обстоятельствах и регионах.
Рекомендуется ли проверять оба свойства, чтобы определить, какая клавиша была нажата?
Любое понимание того, почему ConsoleKeyInfo было разработано таким образом, оценено.