This really applies to many programming languages.
In C# you can do it like this:
The flags
The following defines the flags.Notice how the value doubles - are powers of two - for each flag (binary system).
The flags attribute indicates that bitwise operators will be performed on this enum.
[Flags] public enum Role{ AuxCreator = 1, AuxEditor = 2, AuxDeletor = 4 }
Combine them
Getting the integer that combines some flags is easy using the bitwise or operator:int roles = Role.AuxCreator | Role.AuxDeletor; //roles = 5
Check for flag set
Then, you can check whether a certain flag is set in the integer using the bitwise and operator as follows:bool isAuxDeletor = (roles & Role.AuxDeletor) == Role.AuxDeletor; //isAuxDeletor = true
Unset a flag
To unset a flag from the bitmask, you can use the bitwise and operator again, with the inverse of the flag:int roles = Role.AuxCreator & (~Role.AuxDeletor); //roles = 1
No comments:
Post a Comment