一、枚举类型定义
枚举类型(enum)是 C# 中的一种值类型,用于定义一组命名的常量值。
使用 enum
关键字定义,默认基础类型为 int
,也可以显式指定其他整数类型(如 byte
、short
、long
等)。
基本语法:
enum 枚举名称 [ : 基础类型 ]
{
成员1,
成员2,
...
}
示例:
enum Season
{
Spring, // 默认值为 0
Summer, // 默认值为 1
Autumn, // 默认值为 2
Winter // 默认值为 3
}
也可以写为这个:
public enum eAddress
{
M = 144,
L = 146,
X = 156,
Y = 157
}
也可以显式指定基础类型和成员值:
enum ErrorCode : ushort
{
None = 0,
Unknown = 1,
ConnectionLost = 100,
OutlierReading = 200
}
二、枚举的用法
1. 枚举变量的声明与赋值:
Season currentSeason = Season.Summer;
Console.WriteLine(currentSeason); // 输出: Summer
Console.WriteLine((int)currentSeason); // 输出: 1
2. 枚举与 switch 语句:
switch (currentSeason)
{
case Season.Spring:
Console.WriteLine("春天");
break;
case Season.Summer:
Console.WriteLine("夏天");
break;
case Season.Autumn:
Console.WriteLine("秋天");
break;
case Season.Winter:
Console.WriteLine("冬天");
break;
}
3. 枚举与字符串的转换:
// 枚举转字符串
string seasonStr = currentSeason.ToString(); // "Summer"
// 字符串转枚举
bool success = Enum.TryParse("Autumn", out Season result);
if (success)
Console.WriteLine(result); // Autumn
4.枚举的值存入数组:
enum eAddress : byte // 底层类型是 byte
{
Beijing = 10,
Shanghai = 20,
Guangzhou = 30
}
int[] values = Enum.GetValues(typeof(eAddress))
.Cast<int>() // 这里转成 int
.ToArray();
// 结果:values = { 10, 20, 30 }