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
- Defining and Using Enums
- Flags Enums and Bitwise Combinations
- Enum Conversions and Parsing
- Iterating Enum Values