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.GetName
和Enum.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);
}
输出结果
枚举类型在编程中常用于提高代码的可读性和维护性,特别是当需要使用一组相关的常量时,使用枚举可以使代码更具有表现力和清晰度。