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);
            }

输出结果

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

相关推荐
大阳1239 分钟前
线程(基本概念和相关命令)
开发语言·数据结构·经验分享·算法·线程·学习经验
YA33317 分钟前
java基础(九)sql基础及索引
java·开发语言·sql
奇树谦1 小时前
QT|windwos桌面端应用程序开发,当连接多个显示器的时候,如何获取屏幕编号?
开发语言·qt
weixin_307779131 小时前
VS Code配置MinGW64编译GNU 科学库 (GSL)
开发语言·c++·vscode·算法
froginwe112 小时前
HTML 框架:构建网页布局的基石
开发语言
Yn3122 小时前
在 Python 中使用 json 模块的完整指南
开发语言·python·json
binqian3 小时前
【异步】js中异步的实现方式 async await /Promise / Generator
开发语言·前端·javascript
林开落L3 小时前
库制作与原理(下)
linux·开发语言·centos·库制作与原理
fengfuyao9854 小时前
基于MATLAB的GUI实现人脸检测、眼睛检测以及LBP直方图显示
开发语言·计算机视觉·matlab
★YUI★4 小时前
学习游戏制作记录(玩家掉落系统,删除物品功能和独特物品)8.17
java·学习·游戏·unity·c#