Reflector IL Spy can explain this.
Take a look at the decompiled enumeration and you will see something similar to this:
.class public auto ansi sealed ConsoleApplication1.Foo extends [mscorlib]System.Enum { // Fields .field public specialname rtspecialname int32 value__ .field public static literal valuetype ConsoleApplication1.Foo Bar = int32(0) .field public static literal valuetype ConsoleApplication1.Foo Baz = int32(1) } // end of class ConsoleApplication1.Foo
i.e. The Foo enumeration is implemented as a private class that wraps an int32 called value__ - the extra field you see.
It is worth noting that it also inherits from System.Enum , which also has additional (static) fields.
source share