Answers:
枚举的任何成员代表值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(如上面的文档所引用,强制转换为给定的枚举类型)。
'\0'或default(char),这是因为极不可能default(char)是NUL字符对应于字符代码0
DefaultValue属性(类似-之类的东西)System.ComponentModel.DefaultValue(MyEnum.Blah)会修改的行为,default(MyEnum)但仍会产生0。没有办法为enum默认值附近的对象创建抽象吗?