一个枚举变量,有人知道它是否总是默认为第一个元素吗?
最佳答案
它是枚举中代表值 0
的任何成员。具体来说,来自 documentation :
The default value of an
enum E
is the value produced by the expression(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
(如上面的文档所引述的那样,强制转换为给定的枚举类型)。
关于c# - 枚举变量的默认值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4967656/