我有一个小C#控制台应用程序读取的关键,并检查是否的关键是一个问号:ConsoleKeyInfo,问号和可移植性
ConsoleKeyInfo ki = System.Console.ReadKey();
if (ki.ConsoleKey.Oem2) // Do something
我在Oem2
通过看什么样的价值实际上是抵在调试器中分配,因为问号没有ConsoleKey code。
现在我当然可以使用ki.KeyChar
来代替,但应用程序还需要响应某些不映射到字符的键(例如媒体键)。检查ConsoleKey
和KeyChar
以确定哪个键实际上已被按下,这感觉不雅观。另一方面,依靠Oem2
在所有情况和地区总是映射到?
并不安全。
最好的做法是检查两个属性以确定哪个键实际上被按下了?
任何洞察为什么ConsoleKeyInfo是这样设计的赞赏。