बहुत बार मैं फ्लैग एनम घोषणाओं को देखता हूं जो हेक्साडेसिमल मूल्यों का उपयोग करते हैं। उदाहरण के लिए:
[Flags]
public enum MyEnum
{
None = 0x0,
Flag1 = 0x1,
Flag2 = 0x2,
Flag3 = 0x4,
Flag4 = 0x8,
Flag5 = 0x10
}
जब मैं एक एनम की घोषणा करता हूं, तो मैं आमतौर पर इसे इस तरह घोषित करता हूं:
[Flags]
public enum MyEnum
{
None = 0,
Flag1 = 1,
Flag2 = 2,
Flag3 = 4,
Flag4 = 8,
Flag5 = 16
}
क्या कोई कारण या तर्क है कि कुछ लोग दशमलव के बजाय हेक्साडेसिमल में मान लिखने का विकल्प क्यों चुनते हैं? जिस तरह से मैं इसे देखता हूं, हेक्स मूल्यों का उपयोग करते समय भ्रमित होना आसान होता है और Flag5 = 0x16
इसके बजाय गलती से लिखता है Flag5 = 0x10
।
Flag1 | Flag2
3 है, और 3 किसी भी डोमेन मान के अनुरूप नहीं है MyEnum
।
10
,0x10
तो इसके बजाय किसी भी कम संभावना को आप क्या लिखेंगे ? विशेष रूप से ये बाइनरी नंबर हैं जिनके साथ हम काम कर रहे हैं, और हेक्स द्विआधारी / बाइनरी से परिवर्तनीय है? ... की0x111
तुलना में किसी के सिर में अनुवाद करना बहुत कम कष्टप्रद है273
...