What is the default value for enum variable?
.net, c#, enums
Solution
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).
Problem
An enum variable, anyone know if it is always defaulting to the first element?