Flags enumerations are ideal when you need enumerations with elements that can be combined with one another. As discussed earlier, it is quite possible that a contact in your database is a friend as well as a business colleague. The .NET Framework has a great way of supporting such situations.
When defining a Flags enumeration you need to keep three things in mind.
You should define an enumeration name for the situation of “none of the combinations” (for example, by using None). This item has a value of 0.
You need to assign values that can be combined bitwise. To do that, you count the individual values up by using powers of two.
You add the Flags attribute to the enumeration.
The classic example is the button order and question ...