मुझे System.Windows.Forms
नामस्थान में यह मणि (आईएमओ) मिला। मैं यह समझने के लिए संघर्ष कर रहा हूं कि यह ऐसा क्यों है। बाइनरी मेंविंडोज़ में अजीब enum मान। Forms.MouseButtons
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
}
पहले मूल्य है 100000000000000000000
है, जो एक और 20 बिट के लिए अंतरिक्ष छोड़ देता है:
[Flags]
public enum MouseButtons
{
None = 0,
Left = 1048576,
Right = 2097152,
Middle = 4194304,
XButton1 = 8388608,
XButton2 = 16777216,
}
किसी कारण है कि यह इन मूल्यों (2^20
की शक्ति 2^24
करने के लिए) का उपयोग करता है व्याख्या कर सकते हैं बजाय इस बात का! हमें ऐसी जगह क्यों चाहिए और इसे इस तरह संरक्षित क्यों किया जाता है?
शायद यह Win32 से कुछ संगतता समस्या के कारण है। –
@newStackExchangeInstance मन एक लिंक या स्पष्टीकरण साझा करना जो इस तरह कुछ पैदा कर सकता है? – Odys
मेरे पास इस विशेष मामले पर कोई जानकारी नहीं है, लेकिन मुझे क्या पता है कि Win32 के कारण .NET में enums में बहुत सारे अजीब मान हैं। –