Tôi có một chút C# console ứng dụng mà đọc một chìa khóa và kiểm tra xem nếu phím là một dấu chấm hỏi:ConsoleKeyInfo, câu hỏi Mark và Portability
ConsoleKeyInfo ki = System.Console.ReadKey();
if (ki.ConsoleKey.Oem2) // Do something
tôi đến Oem2
bằng cách nhìn thấy những gì giá trị thực được chỉ định trong trình gỡ lỗi, vì không có ConsoleKey code cho dấu chấm hỏi.
Bây giờ tôi chắc chắn có thể sử dụng ki.KeyChar
thay vào đó, nhưng ứng dụng cũng cần phản hồi một số phím nhất định (ví dụ: khóa phương tiện) không ánh xạ tới các ký tự. Nó cảm thấy không thích hợp để kiểm tra cả hai số ConsoleKey
và KeyChar
để xác định khóa nào đã được nhấn thực tế. Mặt khác, không cảm thấy an toàn khi dựa vào Oem2
để luôn luôn lập bản đồ đến ?
trong mọi trường hợp và khu vực.
Thực tiễn tốt nhất là kiểm tra cả hai thuộc tính để xác định khóa nào đã được nhấn thực tế?
Bất kỳ thông tin chi tiết nào về lý do tại sao ConsoleKeyInfo được thiết kế theo cách này được đánh giá cao.