我有一個小C#控制檯應用程序讀取的關鍵,並檢查是否的關鍵是一個問號:ConsoleKeyInfo,問號和可移植性
ConsoleKeyInfo ki = System.Console.ReadKey();
if (ki.ConsoleKey.Oem2) // Do something
我在Oem2
通過看什麼樣的價值實際上是抵在調試器中分配,因爲問號沒有ConsoleKey code。
現在我當然可以使用ki.KeyChar
來代替,但應用程序還需要響應某些不映射到字符的鍵(例如媒體鍵)。檢查ConsoleKey
和KeyChar
以確定哪個鍵實際上已被按下,這感覺不雅觀。另一方面,依靠Oem2
在所有情況和地區總是映射到?
並不安全。
最好的做法是檢查兩個屬性以確定哪個鍵實際上被按下了?
任何洞察爲什麼ConsoleKeyInfo是這樣設計的讚賞。