Csharp枚举类型

1.C# 中的枚举(Enum)是一种特殊的值类型,它允许你为一组相关的常量定义一个名称。枚举是一种强类型的常量集合,这意味着每个枚举成员都有一个名称和一个底层的整数值。默认情况下,第一个枚举成员的值是0,每个随后的成员的值比前一个成员的值大1。

2.下面是枚举的一些基本用法:

定义枚举

1
2
3
4
5
6
7
8
9
10
public enum DaysOfWeek
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
}

使用枚举

1
2
DaysOfWeek today = DaysOfWeek.Friday;
Console.WriteLine(today); // 输出:Friday

访问枚举成员的值

1
2
int dayValue = (int)today;
Console.WriteLine(dayValue); // 输出:4

枚举的底层类型
你可以指定枚举的底层类型,比如 byte、sbyte、short、ushort、int、uint、long 或 ulong。如果不指定,默认是 int。

1
2
3
4
5
6
7
8
9
10
public enum DaysOfWeek : byte
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
}

枚举成员的显式值
你也可以为枚举成员指定显式的值。

1
2
3
4
5
6
7
8
9
10
public enum DaysOfWeek
{
Sunday = 1,
Monday = 2,
Tuesday = 3,
Wednesday = 4,
Thursday = 5,
Friday = 6,
Saturday = 7
}

枚举与switch语句
枚举类型经常与 switch 语句一起使用。

1
2
3
4
5
6
7
8
9
10
switch (today)
{
case DaysOfWeek.Sunday:
Console.WriteLine("Sunday is the first day of the week.");
break;
case DaysOfWeek.Monday:
Console.WriteLine("Monday is the second day of the week.");
break;
// ... 其他情况
}

检查枚举成员是否存在
你可以使用 Enum.IsDefined 方法来检查一个值是否是枚举中的一个有效成员。

1
2
bool isDefined = Enum.IsDefined(typeof(DaysOfWeek), 8);
Console.WriteLine(isDefined); // 输出:False

枚举是C#中一个非常有用的功能,它可以让你的代码更加清晰和易于维护。