认为限定取值范围
枚举是类,和类同级
枚举类型的本质是整数,默认从0开始,0,1,2,3……..
可以手动赋值。
namespace ConsoleApp2{class Program{static void Main(string[] args){TestE stu = new TestE();stu.Level = Level.A;stu.Season = Season.Autumn;//如果同时拥有多个技能呢//按位取或,把这些枚举值的二进制合起来,第n位有1则1,无1则0//stu.Skill = Skill.Cook | Skill.Drive | Skill.Program | Skill.Teach;Console.WriteLine(stu.Skill);//11//对比stu.Skill的二进制,和Skill.Teach的二进制值,同时为1则1,否者为0,返回并集//如果这个并集等于Teach本身,可能说明stu.Skill包含Skill.Teach//比如Drive和Cook二进制的第一位都是1,并不能说明Drive包含Cook,//所以在设置枚举值的时候,二进制的1.要错开,不要重复,1,2,4,8.....Console.WriteLine((stu.Skill&Skill.Teach)>0);}}enum Level{A,//0B,//1C,//2D //3}//Spring赋值为100,下一个枚举没有显式赋值,就根据上一个枚举值+1enum Season{Spring=100,//100Summer,//101Autumn =300,//300Winter //301}enum Skill{Drive = 3, //二进制 00000011Cook = 1, //二进制 00000001Program =10,//二进制 00001010Teach = 8 //二进制 00001000//按位取或:00001011 转换成10进制 11}class TestE{public Level Level { get; set; }public Season Season { get; set; }public Skill Skill { get; set; }}}
