A comprehensive guide to C# enum flags using the [Flags] attribute. Covers declaring flags enums with power-of-two values, combining flags with bitwise OR, checking flags with HasFlag() or bitwise AND, removing flags with bitwise AND/NOT, toggling with XOR, and serializing with System.Text.Json. Includes a real-world user permissions example, common mistakes to avoid (non-power-of-two values, missing None=0), and guidance on when to use flags enums versus regular enums.

10m read timeFrom devleader.ca
Post cover image
Table of contents
What Is a Flags Enum?Declaring a Flags EnumSetting and Combining FlagsChecking Whether a Flag Is SetClearing and Toggling FlagsToString() and ParsingUsing Long for Large Flags EnumsWhen to Use Flags Enum vs Regular EnumSerializing Flags EnumsReal-World Example: User PermissionsCommon Mistakes With Flags EnumFrequently Asked Questions

Sort: