Advice; I think you need to "ground" your understanding of what Enums are, and what they are intended to be used for with some research and careful experimentation. Here's some great tutorials: [
^], [
^]
Caution: Enums are single/special purpose entities that are compiled into an internal form: you have to use reflection on Type (expensive methods) to access its internals ... compared to other structures. Enums conveniently embody the idea of a set of values related by
magnitude.
I can see no reason why anyone would want/need to determine whether an Enum had the Flags attribute at run-time ... if I saw code performing that test, I'd say there is a problem in the strategy/structure being used.
As Piebald noted above, the Flags Attribute only affects certain Enum functions: ToString, Enum.Parse, and Enum.IsDefined.
If an Enum has #0 CustomAttributes, it is not flagged; but an Enum could have one, or more, CustomAttributes, and not be flagged.
You can determine if an Enum has Flags at run-time:
public bool HasflagsAttribute(Type enm)
{
return enm.IsDefined(typeof(FlagsAttribute), false);
}