जब तक आप कच्चे मूल्यों का उपयोग करने के लिए एक अच्छा कारण है, तो आप केवल कभी अंतर्निहित मानों का उपयोग करते हैं और उनके साथ संदर्भित किया जाना चाहिए Status.Active
और Status.Inactive
।
पकड़ यह है कि आप एक फ्लैट फाइल या डीबी में डेटा स्टोर करना चाहते हैं, या एक फ्लैट फाइल या डीबी का उपयोग कर सकते हैं जो किसी और ने बनाई है। यदि आप इसे स्वयं बना रहे हैं, तो इसे बनाएं ताकि नंबर फिट बैठता है कि एनम किस लिए उपयोग किया जाता है।
यदि डेटा आपका नहीं है, तो निश्चित रूप से आप वह उपयोग करना चाहते हैं जो मूल देव ने नंबरिंग स्कीम के रूप में उपयोग किया था।
यदि आप झंडे के सेट के रूप में एनम का उपयोग करने की योजना बना रहे हैं, तो एक साधारण सम्मेलन है जो निम्नलिखित लायक है:
enum Example
{
None = 0, // 0
Alpha = 1 << 0, // 1
Beta = 1 << 1, // 2
Gamma = 1 << 2, // 4
Delta = 1 << 3, // 8
Epsilon = 1 << 4, // 16
All = ~0, // -1
AlphaBeta = Alpha | Beta, // 3
}
मान दो की शक्तियां होनी चाहिए और बिट-शिफ्ट ऑपरेशन का उपयोग करके व्यक्त की जा सकती है। None
, स्पष्ट रूप से होना चाहिए 0
, लेकिन All
स्पष्ट रूप से कम है -1
। ~0
एक बाइनरी नकार है 0
और एक संख्या में परिणाम है जिसके पास हर बिट सेट है 1
, जो के मान का प्रतिनिधित्व करता है-1
। मिश्रित झंडे के लिए (अक्सर सुविधा के लिए उपयोग किया जाता है) अन्य मानों को बिटवाइज़ या ऑपरेटर का उपयोग करके विलय किया जा सकता है |
।