小编典典

枚举变量的默认值是多少?

all

一个枚举变量,有人知道它是否总是默认为第一个元素吗?


阅读 121

收藏
2022-04-21

共1个答案

小编典典

它是枚举中代表值的任何成员0。具体来说,来自文档

an 的默认值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(如上面的文档所引用的,强制转换为给定的枚举类型)。

2022-04-21