C# › Enums & Flags
How do you create a 'flags' enum that supports combining multiple values using bitwise operations?
IntermediateAnswer
Mark the enum with [Flags] and assign each member a distinct POWER-OF-TWO value, letting you safely combine multiple flags into a single value with the bitwise OR operator and check for a specific flag's presence with bitwise AND.
[Flags]
public enum Permissions {
None = 0,
Read = 1,
Write = 2,
Delete = 4,
All = Read | Write | Delete
}
Permissions userPerms = Permissions.Read | Permissions.Write;
bool canWrite = (userPerms & Permissions.Write) == Permissions.Write; // trueReal-world example Modeling a user's combined set of permissions (read/write/delete) compactly as a single stored enum value.