Tôi tìm thấy đá quý này (IMO) trong không gian tên System.Windows.Forms
. Tôi đang đấu tranh để tìm ra lý do tại sao nó được thiết lập như thế này.Giá trị enum lẻ trong Windows.Forms.MouseButtons
[Flags]
public enum MouseButtons
{
None = 0,
Left = 1048576,
Right = 2097152,
Middle = 4194304,
XButton1 = 8388608,
XButton2 = 16777216,
}
ai đó có thể giải thích lý do tại sao nó sử dụng các giá trị (sức mạnh của 2^20
-2^24
) thay vì điều này:
public enum MouseButtons
{
None = 0,
Left = 1, // 2^0
Right = 2, // 2^1
Middle = 4, // 2^2
XButton1 = 8, // 2^3
XButton2 = 16, // 2^4
}
Giá trị đầu tiên là 100000000000000000000
trong hệ nhị phân, mà lá không gian cho thêm 20 bit! Tại sao chúng ta cần không gian như vậy và tại sao nó được bảo quản như thế này?
Có thể do một số sự cố tương thích từ Win32. –
@newStackExchangeInstance Tâm chia sẻ liên kết hoặc giải thích có thể dẫn đến nội dung như thế này? – Odys
Tôi không có bất kỳ thông tin về trường hợp cụ thể này, nhưng những gì tôi biết là có rất nhiều giá trị lẻ trong enums trong .NET do win32. –