user496949 user496949 - 1 month ago 6x
C# Question

what is the default value for enum variable

An enum variable, anyone know if it is always defaulting to the first element?


It is whatever member of the enumeration represents the value 0. Specifically, from the documentation:

The default value of an enum E is the value produced by the expression (E)0.

As an example, take the following enum:

enum E
    Foo, Bar, Baz, Quux

Without overriding the default values, printing default(E) returns Foo since it's the first-occurring element.

However, it is not always the case that 0 of an enum is represented by the first member. For example, if you do this:

enum F
    // Give each element a custom value
    Foo = 1, Bar = 2, Baz = 3, Quux = 0

Printing default(F) will give you Quux, not Foo.

If none of the elements in an enum G correspond to 0:

enum G
    Foo = 1, Bar = 2, Baz = 3, Quux = 4

default(G) returns literally 0, although its type remains as G (as quoted by the docs above, a cast to the given enum type).