C# 枚举(Enum):规范常量定义

简介: 枚举用于定义命名常量,提升代码可读性与维护性。示例中定义订单状态枚举,演示赋值、转换、解析及遍历操作,避免使用魔法数字,使逻辑更清晰易懂。

枚举用于定义命名常量(如状态、类型),提升代码可读性和可维护性,避免魔法数字。

// 定义枚举(订单状态)
public enum OrderStatus
{
    Pending = 0, // 待支付
    Paid = 1, // 已支付
    Shipped = 2, // 已发货
    Delivered = 3, // 已送达
    Cancelled = 4 // 已取消
}
public class EnumDemo
{
    public static void UseOrderStatus()
    {
        // 枚举赋值
        OrderStatus status = OrderStatus.Paid;
        // 枚举转字符串(获取名称)
        string statusName = status.ToString();
        Console.WriteLine("订单状态名称:" + statusName); // 输出:Paid
        // 枚举转整数(获取值)
        int statusValue = (int)status;
        Console.WriteLine("订单状态值:" + statusValue); // 输出:1
        // 整数转枚举
        int value = 2;
        OrderStatus fromValue = (OrderStatus)value;
        Console.WriteLine("值2对应的状态:" + fromValue); // 输出:Shipped
        // 字符串转枚举
        string name = "Delivered";
        if (Enum.TryParse<OrderStatus>(name, out OrderStatus fromName))
        {
            Console.WriteLine("名称Delivered对应的状态:" + fromName); // 输出:Delivered
        }
        // 遍历枚举所有值
        Console.WriteLine("\n所有订单状态:");
        foreach (OrderStatus os in Enum.GetValues(typeof(OrderStatus)))
        {
            Console.WriteLine($"{os}(值:{(int)os})");
        }
    }
}
// 调用示例
EnumDemo.UseOrderStatus();
相关文章
|
安全 编译器 C语言
深入理解C/C++预处理器指令#pragma once以及与ifndef的比较
深入理解C/C++预处理器指令#pragma once以及与ifndef的比较
1450 0
|
2月前
|
人工智能 缓存 监控
Token Plan个人版完整实操手册:三档套餐参数、Credits抵扣、Qwen3.8折扣与全套配置命令教程
随着大模型应用从原型验证走向常态化生产,传统按量计费模式的短板日益凸显。对于独立开发者、副业创作者、智能体调试爱好者来说,按量计费存在账单波动不可控、高频调用成本居高不下、多模态工具分开扣费等现实痛点。为了解决这类问题,百炼推出Token Plan订阅服务,分为个人版与团队版两大产品线。其中**Token Plan个人版**专门面向单人开发者设计,采用包月订阅、Credits统一计量单位,一份订阅可以覆盖文本、图像、视频多模态模型,同时内置联网检索、文档解析等增强工具,原生兼容Cursor、OpenClaw、Hermes、Claude Code等主流AI开发框架。搭配Qwen3.8‑Max‑P
371 0
|
存储 缓存 Oracle
|
6月前
|
人工智能 JavaScript API
酒店预订网站方案策划2026全攻略
2026年酒店预订网站方案策划深度指南:从技术选型、功能模块规划到SEO落地,覆盖WordPress预订插件避坑、移动端转化优化、Hotel Schema结构化数据实施等核心环节。包含真实项目复盘数据与预算分配框架,助你建立真正能带来直订收入的酒店官网,彻底摆脱OTA高佣金依赖。
|
开发工具 git
在使用git revert回滚提交时,如果想保留部分更改应该怎么做?
在使用git revert回滚提交时,如果想保留部分更改应该怎么做?
1246 57
|
编解码 人工智能 算法
【AI系统】EfficientNet 系列
本文介绍了EfficientNet系列模型,特别是EfficientNet V1和V2。EfficientNet V1通过NAS技术同时探索网络的宽度、深度和分辨率对模型性能的影响,提出了复合模型缩放方法,以平衡三者关系,实现高效模型扩展。EfficientNet V2在此基础上,引入Fused-MBConv模块,采用渐进式学习策略和自适应正则化技术,进一步提升了模型的训练速度和推理效率。
1709 6
【AI系统】EfficientNet 系列
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
786 1
|
存储 大数据 编译器
C语言:结构体对齐规则
C语言中,结构体对齐规则是指编译器为了提高数据访问效率,会根据成员变量的类型对结构体中的成员进行内存对齐。通常遵循编译器默认的对齐方式或使用特定的对齐指令来优化结构体布局,以减少内存浪费并提升性能。
1238 1
|
数据采集 设计模式 自然语言处理
设计模式最佳套路2 —— 愉快地使用管道模式
管道模式(Pipeline Pattern) 是责任链模式(Chain of Responsibility Pattern)的常用变体之一。在管道模式中,管道扮演着流水线的角色,将数据传递到一个加工处理序列中,数据在每个步骤中被加工处理后,传递到下一个步骤进行加工处理,直到全部步骤处理完毕。 PS:纯的责任链模式在链上只会有一个处理器用于处理数据,而管道模式上多个处理器都会处理数据。
13828 0
设计模式最佳套路2 —— 愉快地使用管道模式