Recall & Review
beginner
What is the purpose of the [Flags] attribute in C# enums?
The [Flags] attribute allows an enum to represent a combination of values using bitwise operations, making it easier to work with sets of options.
Click to reveal answer
beginner
How do you define an enum with bitwise flags in C#?
Define enum members with values as powers of two (1, 2, 4, 8, etc.) so each bit represents a unique flag. Example: [Flags] enum MyFlags { None = 0, Read = 1, Write = 2, Execute = 4 }
Click to reveal answer
beginner
How can you check if a specific flag is set in a bitwise enum variable?
Use the bitwise AND operator (&) to check if the flag is set. For example, (myFlags & MyFlags.Read) == MyFlags.Read means the Read flag is set.
Click to reveal answer
beginner
What does combining flags with the bitwise OR operator (|) do?
It creates a new value that contains all the flags combined. For example, MyFlags.Read | MyFlags.Write combines both Read and Write flags.
Click to reveal answer
beginner
Why should enum values for flags be powers of two?
Because powers of two set unique bits in binary, allowing flags to be combined and checked without overlap or confusion.
Click to reveal answer
What does the [Flags] attribute do in a C# enum?
✗ Incorrect
The [Flags] attribute enables combining enum values using bitwise operations to represent multiple options.
Which of these is a correct value for a bitwise flag enum member?
✗ Incorrect
8 is a power of two (2^3), suitable for a unique bit flag. Values like 3, 5, 7 are combinations, not single flags.
How do you check if the Write flag is set in a variable 'flags' of a bitwise enum?
✗ Incorrect
Using bitwise AND (&) and comparing to the flag checks if that flag is set.
What is the result of combining Read (1) and Execute (4) flags using bitwise OR?
✗ Incorrect
1 | 4 equals 5 in binary, combining Read and Execute flags.
Why is it important to assign powers of two to enum flags?
✗ Incorrect
Powers of two ensure each flag uses a unique bit, enabling proper combination and checking.
Explain how the [Flags] attribute and bitwise enums work together in C#.
Think about how bits represent options and how you combine or check them.
You got /4 concepts.
Describe how to define and use a bitwise enum to represent multiple permissions like Read, Write, and Execute.
Imagine permissions as switches you can turn on or off.
You got /4 concepts.