Ich fand dieses Juwel (IMO) in System.Windows.Forms
Namespace. Ich kämpfe um herauszufinden, warum es so eingestellt ist.Odd Enum-Werte in Windows.Forms.MouseButtons
[Flags]
public enum MouseButtons
{
None = 0,
Left = 1048576,
Right = 2097152,
Middle = 4194304,
XButton1 = 8388608,
XButton2 = 16777216,
}
Kann jemand erklären, warum es diese Werte (Leistung von 2^20
-2^24
) statt dessen verwendet:
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
}
Der erste Wert ist 100000000000000000000
binär, was Raum für weitere 20 Bits verlässt! Warum brauchen wir solchen Raum und warum wird er so erhalten?
Es liegt wahrscheinlich an einem Kompatibilitätsproblem von Win32. –
@newStackExchangeInstance Mind Sharing einen Link oder eine Erklärung, die zu so etwas führen könnte? – Odys
Ich habe keine Informationen zu diesem speziellen Fall, aber was ich weiß, ist, dass es in Enums in .NET viele ungerade Werte gibt, aufgrund von win32. –