20250528-C#知识:枚举
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类型的相互转换//枚举转intint 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#基础》
本文结束,感谢您的阅读~