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
No answers yet.
Connectez-vous pour laisser une réponse