C#教程(五):枚举

1、什么是枚举

枚举(Enum)是一种用于定义命名常量集合的数据类型。它允许开发人员创建一个命名的整数常量集合,这些常量可以在代码中代表特定的值。

2、示例

以下是一个简单的枚举示例:

c 复制代码
// 定义一个枚举类型
enum DaysOfWeek
{
    Sunday,    // 默认值为0
    Monday,    // 默认值为1
    Tuesday,   // 默认值为2
    Wednesday, // 默认值为3
    Thursday,  // 默认值为4
    Friday,    // 默认值为5
    Saturday   // 默认值为6
}

在上面的示例中,DaysOfWeek 枚举定义了一周中的每一天,并且每个枚举值都有一个默认的整数值,从0开始递增。

使用枚举时可以这样赋值和访问:

c 复制代码
DaysOfWeek today = DaysOfWeek.Friday; // 赋值一个枚举值给变量
Console.WriteLine(today); // 输出:Friday

int dayValue = (int)DaysOfWeek.Wednesday; // 获取枚举值的整数表示
Console.WriteLine(dayValue); // 输出:3

3、注意

  • 默认情况下,枚举的第一个元素的值为0,后续元素的值依次递增。
  • 可以将枚举值强制转换为整数类型,也可以将整数类型强制转换为枚举值。
  • 枚举是值类型,可以作为方法的参数和返回值。
  • 可以使用 Enum.Parse 方法将字符串转换为枚举值,或使用 Enum.GetNameEnum.GetNames 获取枚举的名称和名称列表。

Enum.Parse的用法

c 复制代码
string input = "Wednesday";
DaysOfWeek day;

// 将字符串转换为枚举值
if (Enum.TryParse(input, out day))
{
    Console.WriteLine($"今天是: {day}");
}
else
{
    Console.WriteLine("星期八");
}

如果输入字符串与枚举中的任何一个值匹配,Enum.Parse 将返回相应的枚举值。在这个示例中,如果输入字符串是 Wednesday,它将被解析为 DaysOfWeek.Wednesday

Enum.GetName的用法

c 复制代码
// 获取枚举值的名称
            string dayName = Enum.GetName(typeof(DaysOfWeek), 3); // 传入枚举类型和整数值
            Console.WriteLine(dayName); // 输出:Wednesday

EnumGetNames的用法

c 复制代码
// 获取枚举类型的所有名称
            string[] allDays = Enum.GetNames(typeof(DaysOfWeek)); // 传入枚举类型,返回包含所有名称的数组
            foreach (var day in allDays)
            {
                Console.WriteLine(day);
            }

输出结果

枚举类型在编程中常用于提高代码的可读性和维护性,特别是当需要使用一组相关的常量时,使用枚举可以使代码更具有表现力和清晰度。

相关推荐
执笔论英雄14 小时前
Slime异步原理(单例设计模式)4
开发语言·python·设计模式
e***749516 小时前
Modbus报文详解
服务器·开发语言·php
lly20240616 小时前
ASP 发送电子邮件详解
开发语言
小徐敲java16 小时前
python使用s7协议与plc进行数据通讯(HslCommunication模拟)
开发语言·python
likuolei16 小时前
XSL-FO 软件
java·开发语言·前端·数据库
6***379416 小时前
PHP在电商中的BigCommerce
开发语言·php
Dev7z16 小时前
基于Matlab的多制式条形码识别与图形界面(GUI)系统设计与实现
开发语言·matlab
合作小小程序员小小店16 小时前
桌面开发,在线%信息管理%系统,基于vs2022,c#,winform,sql server数据。
开发语言·数据库·sql·microsoft·c#
FL162386312916 小时前
ONNX RuntimeC++ 静态库下载安装和使用教程
开发语言·c++
星释16 小时前
Rust 练习册 95:React与响应式编程
开发语言·react.js·rust