首页 > 解决方案 > c#中的枚举数据类型是如何分配内存的

问题描述

其中是存储在内存中的枚举数据类型。当我声明枚举数据类型时,编译器内部实际发生了什么。

这是示例程序

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' 不能通过实例引用访问,而是用类型名称限定它”

标签: c#.netenums

解决方案


枚举具有编译时常量的内存配置文件。默认情况下为整数常量,但也可以使用其他整数类型。可能还有一些额外的东西需要反思,但我不确定这在大局中是否足够。

采用 Enumeration 值的变量相应地具有基础类型的内存配置文件。将枚举转换为整数通常也可以隐式完成,但反之则不行。


推荐阅读