Ho una piccola applicazione console C# che legge una chiave e controlli per vedere se la chiave era un punto interrogativo:ConsoleKeyInfo, il punto interrogativo e portabilità
ConsoleKeyInfo ki = System.Console.ReadKey();
if (ki.ConsoleKey.Oem2) // Do something
sono arrivato al Oem2
da vedere quale valore è in realtà assegnato nel debugger, perché non c'è ConsoleKey code per il punto interrogativo.
Ora, potrei certamente usare ki.KeyChar
, ma l'applicazione deve anche rispondere a determinati tasti (ad esempio i tasti multimediali) che non corrispondono ai caratteri. Non è bello controllare sia ConsoleKey
sia KeyChar
per determinare quale chiave è stata effettivamente premuta. D'altra parte, non è sicuro affidarsi a Oem2
per associare sempre a ?
in tutte le circostanze e regioni.
È consigliabile controllare entrambe le proprietà per determinare quale tasto è stato effettivamente premuto?
Qualsiasi comprensione del motivo per cui ConsoleKeyInfo è stato progettato in questo modo è apprezzata.