Avatar ·

ماذا يعني السمة [Flags] للتعداد (enum) في C#؟

مرحبًا أيها الزملاء! أنا أتعلم C# وقد صادفت السمة [Flags] قبل تعريف enum. قرأت عدة مقالات، لكني لم أفهم تمامًا لماذا هي مطلوبة. هذا مثال وجدته: ```csharp [Flags] public enum Days { None = 0, Monday = 1, Tuesday = 2, Wednesday = 4, Thursday = 8, Friday = 16, Saturday = 32, Sunday = 64 } ``` أفهم أن القيم محددة كقوى للعدد 2 (1, 2, 4, 8...)، لكني لا أفهم: 1. ماذا تفعل السمة [Flags] بالضبط؟ بدونها، الكود يترجم أيضًا. 2. كيف يمكن دمج القيم بشكل صحيح؟ جربت كتابة `Days weekend = Days.Saturday | Days.Sunday;`، لكني لست متأكدًا إذا كان هذا صحيحًا. 3. كيف يمكن لاحقًا التحقق مما إذا كان يوم معين موجودًا في هذه المجموعة؟ على سبيل المثال، هل يوجد Saturday في المتغير weekend؟ 4. هل من الضروري تعيين القيم كقوى للعدد 2؟ هل يمكن جعلها ببساطة 0, 1, 2, 3, 4؟ يرجى التوضيح بأمثلة بسيطة. شكرًا مقدمًا! <<>>

ماذا تفعل السمة