What is the default value for enum variable?
It is whatever member of the enumeration represents the value 0. Specifically, from the documentation:
The default value of an
enum Eis 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).