Enum Flags একটি এনুমারেশন ভেরিয়েবল নেয় এবং এটিকে একাধিক মান ধারণ করার অনুমতি দেয়। এটি তখন ব্যবহার করা উচিত যখন এনাম একটি একক মান রিপ্রেজেন্ট করার বদলে ফ্ল্যাগসের একটি কালেকশন রিপ্রেজেন্ট করে।
শুধু তখন একটি এনুমারেশনের জন্য `FlagsAttribute` ব্যবহার করুন যখন একটি বিটওয়াইজ অপারেশন (AND, OR, EXCLUSIVE OR) একটি নামারিক ভ্যালুর ওপর পারফর্ম করা হবে।
এনুমারেশন কনস্ট্যান্টগুলো টুয়ের পাওয়ারে ডিফাইন করুন, অর্থাৎ ১, ২, ৪, ৮, এবং এভাবেই। এর মানে কম্বাইনড এনুমারেশন কনস্ট্যান্টসের ইনডিভিজুয়াল ফ্ল্যাগস ওভারল্যাপ করে না।
উদাহরণ
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