Aller au contenu

Enum Flags

Contexte : Appliquez l’attribut [Flags] à une énumération pour indiquer que ses membres peuvent être combinés à l’aide d’opérations bit à bit.

[Flags]
public enum Permissions
{
None = 0,
Read = 1,
Write = 2,
Execute = 4,
ReadWrite = Read | Write
}
Permissions perms = Permissions.Read | Permissions.Write;
Console.WriteLine(perms.HasFlag(Permissions.Read)); // True
Console.WriteLine(perms); // Read, Write
// Opérations bit à bit
perms |= Permissions.Execute; // ajouter un flag
perms &= ~Permissions.Write; // supprimer un flag

Autorisations d’accès aux fichiers : Utilisez une énumération [Flags] pour FileAccess (Read, Write, ReadWrite) et FileShare (None, Read, Write, ReadWrite, Delete).

Exemple : Dans .NET, FileAccess et FileShare sont des énumérations Flags. Également RegexOptions.