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

标签 c# .net enums

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

最佳答案

它是枚举中代表值 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/

相关文章:

java - 通用枚举 JPA AttributeConverter 实现

c# - CMD COPY 找不到文件

c# - 为什么泛型 ICollection 不在 .NET 4.5 中实现 IReadOnlyCollection?

c# - 我是否必须在所有项目中引用 Entity Framework 6 dll? (不仅是我的 DAL)

c# - Web 表单脚手架而不是 MVC

.net - 设置字体真的有多重要?

hibernate - 如何使用字段将属性注释为枚举

.net - 遇到枚举中未定义的 FileSystemRights 值

c# - 调试时无法查看变量值

强制实现枚举的 Java 接口(interface) - 如何处理?