我有以下演员表:

int myInteger = (int)myItem.EnumValue;


枚举在哪里:

public enum EnumValue
{
     Yes= 0,
     No = 1
}


根据我的观察,似乎未设置myItem上的EnumValue时,EnumValue的值默认情况下设置为Yes,然后强制转换为0。

为什么枚举不为空?我的观察正确吗,为什么呢?

最佳答案

Enum是值类型,因此与int的值和其他值类型一样,它们不能为null。相反,它们的默认值等于0(因为您已将枚举值Yes设置为0,所以在这种情况下为默认值)。

如果您想使用可为空的枚举,请简短地使用Nullable<EnumValue>EnumValue?

进一步阅读


Value Types (C# Reference)
enum (C# Reference)
Nullable Types (C# Programming Guide)

关于c# - 如果未设置枚举,会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23682941/

10-09 13:17