एनम फ्लैग्स का उपयोग एन्यूमरेशन वेरिएबल लेने के लिए किया जाता है और इसे कई मान रखने की अनुमति देता है। इसका उपयोग तब किया जाना चाहिए जब एनम एकल मान का प्रतिनिधित्व करने के बजाय झंडे के संग्रह का प्रतिनिधित्व करता है
किसी एन्यूमरेशन के लिए फ्लैग्सएट्रिब्यूट का उपयोग केवल तभी करें जब एक बिटवाइज़ ऑपरेशन (AND, OR, EXCLUSIVE OR) एक संख्यात्मक मान पर किया जाना है।
गणना स्थिरांक को दो की घातों में परिभाषित करें, अर्थात् 1, 2, 4, 8, इत्यादि। इसका मतलब है कि संयुक्त गणना स्थिरांक में अलग-अलग झंडे ओवरलैप नहीं होते हैं।
उदाहरण
class Program { [Flags] enum SocialMediaFlags { None = 0, Facebook = 1, Twitter = 2, LinkedIn = 4, Instagram = 8, Snapchat = 16, Pinterest = 32, Reddit = 64 } static void Main() { var SocialMedia1 = SocialMediaFlags.Facebook | SocialMediaFlags.Twitter | SocialMediaFlags.Instagram; var SocialMedia2 = SocialMediaFlags.LinkedIn; var SocialMedia3 = SocialMediaFlags.Pinterest | SocialMediaFlags.Reddit; SocialMediaFlags[] SocialMediasFlags = { SocialMedia1, SocialMedia2, SocialMedia3 }; for (int ctr = 0; ctr < SocialMediasFlags.Length; ctr++) if ((SocialMediasFlags[ctr] & SocialMediaFlags.Facebook) == SocialMediaFlags.Facebook) { Console.WriteLine("SocialMedia {0} has Facebook service: {1}", ctr + 1, "Yes"); } Console.WriteLine(); } }
आउटपुट
SocialMedia 1 has Facebook service: Yes