0Pricing
C# Academy · Lesson

Flags Enums and Bitwise Combinations

Combine enum values with the Flags attribute.

Flags Enums

A flags enum represents a combination of options. Mark it with the [Flags] attribute and give each member a distinct power of two.

using System;

[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
    static void Main() {
        Access a = Access.Read | Access.Write;
        Console.WriteLine(a);
    }
}

Powers of Two

Each flag must occupy a unique bit: 1, 2, 4, 8, 16. This lets values combine without overlap.

using System;

[Flags]
enum Perm { Read = 1, Write = 2, Delete = 4, Share = 8 }
class Program {
    static void Main() {
        Console.WriteLine((int)Perm.Share);
    }
}

All lessons in this course

  1. Defining and Using Enums
  2. Flags Enums and Bitwise Combinations
  3. Enum Conversions and Parsing
  4. Iterating Enum Values
← Back to C# Academy