Unity开发之C#基础-枚举
前言
上一篇我们介绍了什么是数组,相信大家看到这篇时已经对数组和其他篇章有了通俗的了解,那么今天,我们介绍的是C#当中的两个特殊的值类型:枚举,结构体
制作不易还请各位一键三连哦!
目录
- 前言
- 什么是枚举
- 什么时候用枚举
- 枚举类型的定义举例
- 枚举类型的本质
- 自定义枚举类型代表整数
- 枚举类型的整数之间的相互转换
- 枚举类型的注意事项
- 总结
什么是枚举
通俗来说,枚举就是相当于一个我们自己声明定义的一个值类型的集合,就比如我定义一个集合,以A为名字,我这个A的集合里含有b,c,d三个元素,书写出来就类似于这样:A = {b,c,d}。这个A,就代表枚举类型变量。而其中的b,c,d就是这个枚举变量可以使用的值。
什么时候用枚举
如果要对变量的取值范围作特定的限定,可以将其定义为枚举类型,在其中“枚举” 出所有可能的取值项
枚举类型的定义举例
using System;namespace C_Sharp枚举与结构体{ enum WeekDay//定义枚举类型,用来存储星期 { Monday, Quesday, Wednesday, Thursday, Friday, Saturday, Sunday } class Program { static WeekDay weekDay = WeekDay.Monday; static void Main(string[] args) { //可以使用switch判断语句来对想要符合条件的枚举类型进行判断 //因为我们定义的枚举类型的变量有很多,不适合用if/else判断 switch (weekDay) { case WeekDay.Monday: Console.WriteLine("今天是星期一"); break; case WeekDay.Quesday: Console.WriteLine("今天是星期二"); break; case WeekDay.Wednesday: Console.WriteLine("今天是星期三"); break; case WeekDay.Thursday: Console.WriteLine("今天是星期四"); break; case WeekDay.Friday: Console.WriteLine("今天是星期五"); break; case WeekDay.Saturday: Console.WriteLine("今天是星期六"); break; case WeekDay.Sunday: Console.WriteLine("今天是星期日"); break; } } }}
上面的例子使我们利用了一周七天的规则。此时,假如你的游戏,每一天都会触发不同的事件效果,就可以在case语句中进行逻辑的编写。
此外枚举类型也可以使用中文进行声明,当然笔者不推荐这样
using System;namespace C_Sharp枚举与结构体{ enum 中文 { 中文1, 中文2, 中文3, 中文4, } class Program { static 中文 z = 中文.中文1; static void Main(string[] args) { switch (z) { case 中文.中文1: Console.WriteLine(z); break; case 中文.中文2: break; case 中文.中文3: break; case 中文.中文4: break; } } }}
枚举类型的本质
即便枚举类型的成员项是使用文字来进行说明的,这有助于对程序的理解,但它们的 实际存储类型都是整数,也就是说我们所定义的这些枚举类型都是有对应的整数存储在数据中。
对于Weekday,其第一个值Monday对应整数0,Tuesday对应为1……最后一个Sunday 对应整数为6
自定义枚举类型代表整数
c#中,还支持我们自定义枚举类型的整数数字:
枚举类型的整数之间的相互转换
枚举类型既然存储的是整数,那么就可以和整数之间相互转换:
枚举类型的注意事项
程序中不应滥用枚举类型。事实上大多数的值都是有范围的;除了程序中常用的一些 特殊概念之外,大部分还应直接使用整型,并在程序逻辑中控制范围,如“月份”为1 到12,“年级”为1到6,“鞋码”为10到30等,而不是将他们都定义为枚举类型。
总结
以上,就是今天对枚举类型的讲解,下一期我们将会讲到结构体,枚举类型的用处比较微妙,随着大家后面在做项目时,就会发现它的妙用了。今天就到这里了,大家再见。别忘了给作者一键三连哦!