An Enum is a special "high-level" Type in C#; like Classes and Structs it can be defined either within a Namespace, or inside a Class or Struct. Enums in a Namespace are, then, available to all Classes, or Structs, in the Namespace.
Note, however, that you cannot define an Enum within a Struct; however, you can have a variable of Type Enum in a Struct.
You cannot define a Class, Enum, or Struct inside a method; that's just the way the C# language is implemented. You can think of an Enum as part of the
declarative aspect of creating your Application structure, while you might think of Methods, and EventHandlers, as being part of the dynamic part of Application structure.
An Enum groups together a set of integral Types; you might think of an Enum as a ordered set of named Constants.
Good reading on Enums:
MSDN: [
^].
C# Language Definition: download .pdf file from here: [
^].
CodeProject: [
^], and a wealth of CP resources here: [
^].