如何建设网站 知乎,wordpress 手机,网站备案每年审吗,黄岛网站建设价格枚举#xff08;Enum#xff09;是C#中管理固定状态集合的利器#xff0c;它像魔法标签将数字转化为可读性极强的语义化常量。今天通过交通灯案例#xff0c;带你彻底吃透枚举#xff01;
#x1f9e9; 一、枚举的本质特性
值类型核心
与结构体(struct)相…枚举Enum是C#中管理固定状态集合的利器它像魔法标签将数字转化为可读性极强的语义化常量。今天通过交通灯案例带你彻底吃透枚举 一、枚举的本质特性
值类型核心
与结构体(struct)相同枚举直接存储数据而非引用内存高效无负担
enum TrafficLight { Green, Yellow, Red } // 值类型声明 成员唯一性约束
成员必须是整数值常量逗号分隔且禁止分号
// ✅ 正确写法逗号分隔无分号
enum Colors { Red, Green 5, Blue }二、底层运行机制
默认int类型
编译器自动分配整数值从0开始递增
TrafficLight.Green // 实际值0
TrafficLight.Yellow // 实际值1
TrafficLight.Red // 实际值2 值类型验证实验
var light TrafficLight.Green;
Console.WriteLine($状态{light}数值{(int)light});
// 输出状态Green数值0 ⚙️ 三、高阶自定义技巧
更改底层类型
支持所有整数类型byte/short等节省内存
enum Light : byte { Off, Low, High } // 底层byte类型 显式赋值策略
自由设定初始值允许重复数值
enum Priority {Low 10, // 自定义起点 Medium 15, // 跳跃赋值 High 10 // 允许值重复慎用
}四、实战交通灯系统
// 1. 声明枚举类型
enum TrafficLight { Green, Yellow, Red }// 2. 创建状态变量
var currentLight TrafficLight.Green;// 3. 状态切换逻辑
switch(currentLight) {case TrafficLight.Green:Console.WriteLine(通行); break;case TrafficLight.Yellow:Console.WriteLine(减速); break;case TrafficLight.Red:Console.WriteLine(停止); break;
}五、枚举核心价值总结
优势应用场景语义化状态标识状态机订单/工作流类型安全校验替代魔法数字错误代码智能提示支持开发效率提升内存占用优化嵌入式/高性能场景
✨ 最佳实践优先使用枚举替代整数常量让代码获得自解释的超能力