این مقاله نحوه استفاده از enums و enum flags را برای مدیریت تعداد فزایندهای از گزینهها، با استفاده از قیاس یک همبرگر فروشی، توضیح میدهد. این مطلب تکامل از پرچمهای بولی به enums و در نهایت به enum flags را نشان میدهد و مزایای هر رویکرد را برجسته میکند.
مشکل: مدیریت گزینههای متعدد
- در ابتدا، پرچمهای بولی برای هر چاشنی (مثلاً TomatoSauce، Mayonnaise) استفاده میشوند.
- با افزایش تعداد گزینهها، این روش دستوپاگیر میشود.
- کدهای عدد صحیح یا رشتهای پیشنهاد میشوند، اما فاقد امنیت نوع و خوانایی هستند.
راه حل: Enums
- Enums ثابتهای نامگذاری شدهای را با مقادیر عددی زیربنایی ارائه میدهند.
- آنها خوانایی و امنیت نوع را بهبود میبخشند.
مشکل: انتخاب گزینههای متعدد
- Enums استاندارد فقط اجازه میدهند یک مقدار در یک زمان انتخاب شود.
راه حل: Enum Flags
- Enum flags از عملیات بیتی برای اجازه انتخاب چندگانه استفاده میکنند.
- مقادیر آن توانهای 2 هستند (1، 2، 4، 8 و غیره).
- از ویژگی [Flags] برای نشان دادن اینکه enum برای عملیات بیتی در نظر گرفته شدهاست، استفاده میشود.
نکات کلیدی
- ویژگی [Flags] یک قرارداد است، نه یک الزام برای عملیات بیتی.
- مقادیر تکراری enum توسط کامپایلر مجاز هستند، اما باید از آنها اجتناب شود.
- مقادیر عدد صحیح را میتوان مستقیماً به متغیرهای enum اختصاص داد، اما اعتبار سنجی با استفاده از Enum.IsDefined توصیه میشود.
مشاهده مطلب اصلی