Avatar ·

Que signifie l'attribut [Flags] pour les énumérations (enum) en C# ?

Bonjour, collègues ! J'apprends le C# et je suis tombé sur l'attribut [Flags] avant la déclaration d'un enum. J'ai lu plusieurs articles, mais je n'ai pas complètement compris à quoi il sert. Voici un exemple que j'ai trouvé : ```csharp [Flags] public enum Days { None = 0, Monday = 1, Tuesday = 2, Wednesday = 4, Thursday = 8, Friday = 16, Saturday = 32, Sunday = 64 } ``` Je comprends que les valeurs sont définies comme des puissances de deux (1, 2, 4, 8...), mais je ne comprends pas : 1. Que fait exactement l'attribut [Flags] ? Sans lui, le code compile aussi. 2. Comment combiner correctement les valeurs ? J'ai essayé d'écrire `Days weekend = Days.Saturday | Days.Sunday;`, mais je ne suis pas sûr que ce soit correct. 3. Comment vérifier ensuite si un jour spécifique est contenu dans une telle combinaison ? Par exemple, est-ce que Saturday est dans la variable weekend ? 4. Est-il obligatoire de définir les valeurs comme des puissances de deux ? Peut-on simplement faire 0, 1, 2, 3, 4 ? Expliquez-moi, s'il vous plaît, avec des exemples simples. Merci d'avance ! <<>>

Ce que fait l'attribut