Ответ 1
Это то, что член перечисления представляет значение 0
. В частности, из документации:
Значение по умолчанию
enum E
- это значение, выражаемое выражением(E)0
.
В качестве примера сделаем следующее перечисление:
enum E
{
Foo, Bar, Baz, Quux
}
Без переопределения значений по умолчанию печать default(E)
возвращает Foo
, поскольку это первый элемент.
Однако не всегда бывает, что 0
перечисления представлено первым членом. Например, если вы это сделаете:
enum F
{
// Give each element a custom value
Foo = 1, Bar = 2, Baz = 3, Quux = 0
}
Печать default(F)
даст вам Quux
, а не Foo
.
Если ни один из элементов в перечислении G
не соответствует 0
:
enum G
{
Foo = 1, Bar = 2, Baz = 3, Quux = 4
}
default(G)
возвращает буквально 0
, хотя его тип остается как G
(как указано в документах выше, приведение к указанному типу перечисления).