【发布时间】:2012-02-28 20:22:04
【问题描述】:
我有一个小的 C# 控制台应用程序,它读取一个键并检查该键是否是问号:
ConsoleKeyInfo ki = System.Console.ReadKey();
if (ki.ConsoleKey.Oem2) // Do something
我通过查看调试器中实际分配的值到达Oem2,因为没有问号的ConsoleKey code。
现在我当然可以改用ki.KeyChar,但应用程序还需要响应某些不映射到字符的键(例如媒体键)。检查ConsoleKey 和KeyChar 来确定实际上按下了哪个键感觉不雅。另一方面,在所有情况和地区都依赖Oem2 始终映射到? 并不安全。
最好的做法是检查这两个属性以确定实际按下的是哪个键?
感谢您了解为何以这种方式设计 ConsoleKeyInfo。
【问题讨论】:
标签: c# .net console-application