C#知识:枚举
- 枚举变量可以表示角色的各种状态,例如待机、奔跑、攻击等,也可以表示地图的类型,例如墙壁、空白、陷阱等。这样避免了使用数字来表示状态造成阅读理解困难的问题。
- 本文简单介绍一下枚举的相关知识。
1、枚举类型和枚举变量的定义
- 枚举类可以定义在类中,也可以定义在类外。
- 枚举变量声明后要初始化才能使用。
enum Weekends
{
Monday, Tuesday, Wednesday,Thursday, Friday, Saturday, Sunday
}
enum Day
{
Morning, Lunch, Afternoon, Evening, MidNight
}
//枚举类可以定义在类中,也可以定义在类外
//声明枚举变量并初始化
Weekends myDate = Weekends.Friday;
//直接输出枚举变量
Console.WriteLine(myDate); //Friday
//创建一个枚举变量不初始化,然后直接输出
//Weekends myDate2;
//Console.WriteLine(myDate2); //因为枚举变量为初始化而编译报错
2、枚举变量的使用
- if条件表达式中
- switch条件表达式中
- 枚举数组用来地图、角色状态等
//枚举变量可以出现在if语句和switch语句的条件表达式中
Day myTime = Day.MidNight;
if (myDate == Weekends.Friday && myTime == Day.MidNight) //条件语句执行 开黑
Console.WriteLine("开黑");
//枚举与switch天生一对
switch (myTime) //输出 客厅蹦迪
{
case Day.Morning:
Console.WriteLine("睡早觉");
break;
case Day.Lunch:
Console.WriteLine("睡午觉");
break;
case Day.Afternoon:
Console.WriteLine("睡下午觉");
break;
case Day.Evening:
Console.WriteLine("睡大觉");
break;
case Day.MidNight:
Console.WriteLine("客厅蹦迪");
break;
}
3、枚举类型转换
- 枚举转int
- 枚举转字符串
- 字符串转枚举
int eValue = (int)myTime;
Console.WriteLine(eValue); //4 默认从0开始,依次递增1
//枚举转字符串
string eStr = myTime.ToString();
Console.WriteLine(eStr); //MidNight
//字符串转枚举
Weekends tempDate = (Weekends)Enum.Parse(typeof(Weekends), "Sunday");
Console.WriteLine(tempDate); //Sunday
4、完整代码示例
namespace LearnEnum
{
enum Weekends
{
Monday, Tuesday, Wednesday,Thursday, Friday, Saturday, Sunday
}
internal class Program
{
enum Day
{
Morning, Lunch, Afternoon, Evening, MidNight
}
static void Main(string[] args)
{
//枚举类可以定义在类中,也可以定义在类外
//声明枚举变量并初始化
Weekends myDate = Weekends.Friday;
//直接输出枚举变量
Console.WriteLine(myDate); //Friday
//创建一个枚举变量不初始化,然后直接输出
//Weekends myDate2;
//Console.WriteLine(myDate2); //因为枚举变量为初始化而编译报错
//枚举变量可以出现在if语句和switch语句的条件表达式中
Day myTime = Day.MidNight;
if (myDate == Weekends.Friday && myTime == Day.MidNight) //条件语句执行 开黑
Console.WriteLine("开黑");
//枚举与switch天生一对
switch (myTime) //输出 客厅蹦迪
{
case Day.Morning:
Console.WriteLine("睡早觉");
break;
case Day.Lunch:
Console.WriteLine("睡午觉");
break;
case Day.Afternoon:
Console.WriteLine("睡下午觉");
break;
case Day.Evening:
Console.WriteLine("睡大觉");
break;
case Day.MidNight:
Console.WriteLine("客厅蹦迪");
break;
}
//枚举类型与int,string类型的相互转换
//枚举转int
int eValue = (int)myTime;
Console.WriteLine(eValue); //4 默认从0开始,依次递增1
//枚举转字符串
string eStr = myTime.ToString();
Console.WriteLine(eStr); //MidNight
//字符串转枚举
Weekends tempDate = (Weekends)Enum.Parse(typeof(Weekends), "Sunday");
Console.WriteLine(tempDate); //Sunday
//探究一下枚举类中的枚举常量,未完待续
Console.WriteLine(Weekends.Friday.GetType()); //LearnEnum.Weekends
}
}
}
5、参考资料
- 《唐老狮C#基础》
本文结束,感谢您的阅读~