c# - 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' 不能通过实例引用访问,而是用类型名称限定它”
解决方案
枚举具有编译时常量的内存配置文件。默认情况下为整数常量,但也可以使用其他整数类型。可能还有一些额外的东西需要反思,但我不确定这在大局中是否足够。
采用 Enumeration 值的变量相应地具有基础类型的内存配置文件。将枚举转换为整数通常也可以隐式完成,但反之则不行。
推荐阅读
- python - 将包含每列值的标题行添加到多个 CSV 文件
- c# - 实体框架中的单边一对一关系
- flutter - 如何在 Flutter 中设置部分文本的样式?
- vba - MS-Access VBA - 如何将文本框使用的当前查询字段名称分配给变量
- html - 高度的功能是什么:这里的自动?
- javascript - 如何检查布尔值是否设置为 true,然后将其推送到嵌套数组
- mysql - MySQL select 语句缺少一些字段
- node.js - 使用 NodeJS 抓取网站时出现问题验证码
- css - 字体真棒包 - 没有得到正确的图标
- python - 多次实例化时异步锁中的事件循环错误