Flags enum
Context: Apply the [Flags] attribute to an enum to indicate that its members can be combined using bitwise operations.
[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)); // TrueConsole.WriteLine(perms); // Read, Write
// Bitwise operationsperms |= Permissions.Execute; // add flagperms &= ~Permissions.Write; // remove flagReal-world usage example
Section titled “Real-world usage example”File access permissions: Use [Flags] enum for FileAccess (Read, Write, ReadWrite) and FileShare (None, Read, Write, ReadWrite, Delete).
Example: In .NET, FileAccess and FileShare are flags enums. Also RegexOptions.