class enum_class
{
public static void Main()
{
Gender Unknown = (int)Season.Winter;
Console.WriteLine(Unknown);
Console.WriteLine(Gender.Unknown);
}
}
public enum Gender
{
Unknown = 10;
}
public enum Season
{
Winter = 1;
}
在上面的代码中,我希望将变量Winter的值赋给变量Unknown。
现在Console.WriteLine(Unknown);
给出了预期的输出,即未知值从其初始值10变为1.
但是,Console.WriteLine(Gender.Unknown);
打印10作为其原始值的输出。我可以知道这背后的原因吗?!!
答案 0 :(得分:0)
如果我们跟踪您的代码,我们会在Main
方法中看到,首先创建一个名为Gender
的{{1}}类型的变量(这是一个枚举),它也等于整数值unknown
,即1.因此,Season.Winter
将导致1.在第三行中,您调用Console.WriteLine(Unknown)
的值;您定义的枚举值,始终为10.
总结;代码中的第一个Gender.Unknown
是您创建的变量,但第二个是Unknown
,它是一个常量枚举。