一个枚举变量,有人知道它是否总是默认为第一个元素吗?
它是枚举中代表值的任何成员0。具体来说,来自文档:
0
an 的默认值enum E是由表达式生成的值(E)0。
enum E
(E)0
例如,以以下枚举为例:
enum E { Foo, Bar, Baz, Quux }
在不覆盖默认值的情况下,打印default(E)返回,Foo因为它是第一个出现的元素。
default(E)
Foo
但是,枚举 并不总是0由第一个成员表示。例如,如果您这样做:
enum F { // Give each element a custom value Foo = 1, Bar = 2, Baz = 3, Quux = 0 }
印刷default(F)会给你Quux,不是Foo。
default(F)
Quux
如果枚举中没有任何元素G对应于0:
G
enum G { Foo = 1, Bar = 2, Baz = 3, Quux = 4 }
default(G)从字面上返回0,尽管它的类型仍然是G(如上面的文档所引用的,强制转换为给定的枚举类型)。
default(G)