亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C# 枚举完全指南:定义、使用、底层类型与实战技巧

枚举是一组命名整数常量的集合。使用 enum 关键字声明枚举类型。C# 枚举是值数据类型,包含自身值,不能继承也不能被继承。

声明枚举变量

通用语法:

enum <enum_name> { enumeration list };

枚举列表中每个符号代表整数值,比前一个符号大 1。默认首个符号值为 0。

示例

enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
// Sun=0, Mon=1, Tue=2, Wed=3, Thu=4, Fri=5, Sat=6

完整示例

using System;
namespace EnumApplication {
    class EnumProgram {
        enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
        
        static void Main(string[] args) {
            int WeekdayStart = (int)Days.Mon;
            int WeekdayEnd = (int)Days.Fri;
            Console.WriteLine("Monday: {0}", WeekdayStart);   // 1
            Console.WriteLine("Friday: {0}", WeekdayEnd);     // 5
            Console.ReadKey();
        }
    }
}

自定义枚举值

可显式指定枚举成员值:

enum StatusCode {
    Success = 200,
    NotFound = 404,
    ServerError = 500
}

指定底层类型

默认底层类型为 int,可指定为 byte、sbyte、short、ushort、uint、long、ulong:

enum Color : byte { Red = 1, Green = 2, Blue = 3 }

常用操作

操作代码示例说明
枚举转整数(int)Days.Mon强制转换获取底层值
整数转枚举(Days)3需确保值在定义范围内
字符串转枚举Enum.Parse<Days>("Mon")区分大小写
枚举转字符串Days.Mon.ToString()返回 "Mon"
获取所有值Enum.GetValues<Days>()返回数组
获取所有名称Enum.GetNames<Days>()返回字符串数组
判断定义Enum.IsDefined<Days>(3)返回 bool
标志位枚举[Flags] enum Perm { Read=1, Write=2, Execute=4 }支持位运算组合

Flags 枚举示例

[Flags]
enum FileAccess {
    None = 0,
    Read = 1,
    Write = 2,
    Execute = 4,
    ReadWrite = Read | Write  // 3
}

FileAccess access = FileAccess.Read | FileAccess.Write;
Console.WriteLine(access.HasFlag(FileAccess.Read));  // True
Console.WriteLine(access);  // Read, Write

最佳实践

C语言

  1. C# Hello World — 构建你的第一个C#应用程序
  2. C#关键字与标识符:规则、完整列表与最佳实践
  3. 精通C#变量与基础数据类型:完整指南
  4. C#运算符——C#运算符全面指南
  5. 掌握 C# 位运算与移位运算符:全面指南
  6. C# 基础:输入输出核心技巧完全指南
  7. C# 表达式、语句与代码块:全面指南与实战示例
  8. 掌握 C# 注释:类型、最佳实践与 XML 文档注释
  9. 掌握 C# switch 语句:语法、示例与最佳实践
  10. C# 三元运算符:条件表达式简明指南
  11. C# break 语句:用法、时机与实战示例
  12. 掌握 C# continue 语句:高效跳过循环迭代的实战指南