其中是存储在内存中的枚举数据类型。当我声明枚举数据类型时,编译器内部实际发生了什么。
这是示例程序
using System;
public class Program
{
public static void Main()
{
WeekDays wd = new WeekDays();
Console.WriteLine(wd.Friday);
Console.WriteLine((int)wd.Friday);
}
}
public enum WeekDays
{
Monday = 0,
Tuesday = 1,
Wednesday = 2,
Thursday = 3,
Friday = 4,
Saturday = 5,
Sunday = 6
}
我们可以使用为Enum创建的实例吗?编译器不允许我访问该类的变量 它会引发此错误“无法通过实例引用访问静态成员`WeekDays.Friday',而应使用类型名称对其进行限定”
答案 0 :(得分:1)
枚举具有编译时间常数的内存配置文件。默认情况下,整数常量,但也可以使用其他整数类型。可能还有一些其他的东西需要反思,但我不确定这在总体上是否有意义。
采用枚举值的变量因此具有基础类型的内存配置文件。通常也可以隐式完成将Enum强制转换为Integer的操作,但反之亦然。
答案 1 :(得分:0)
枚举未在内存中分配-它们仅存在于编译阶段。它们仅在告诉您的示例中星期二是什么值时才存在。代码运行时-不再有枚举。
它与以下功能相同
#define Monday 0;
#define Tuesday 1;
.
.
.
.
#define Sunday 6;
但是我们更喜欢枚举而不是定义,因为使用枚举比#defines更容易支持和读取代码。
可以清楚地看到枚举大小