CLR笔记:12.枚举类型和位标志2011-10-26 博客园 包建强12.1 枚举类型强类型,枚举之间进行不能隐式转换枚举类型直接派生于System.Enum,后者派生于System.ValueType,值类型,可以使用装箱/拆箱不能定义方法/属性/事件。同一个枚举中,多个枚举符号有相同的数值,数值转符号时,会返回其中第一个符号。枚举类型要与使用它的类在同一级。默认为int,可以指定枚举成员的类型,只有int,uint,byte,sbyte,long,ulong,short,ushort 这8种基元类型。可以使用操作符作用于枚举类型,实际上是作用于相应的value实例字段,如++。可以将枚举类型的实例显示转型为另一个不同的枚举类型,其实是先转为值,再反过去在另一个枚举 中根据值找对应枚举值。可以显示将枚举类型的实例转型为一个数值类型。
public enum Color { Red, Black, White } public enum Sentence { hello, bye } class Program { static void Main(string[] args) { //使用运算符,++ Color a = Color.Red; ++a; Sentence s; //两个不同的枚举相互转换, 但是发现Color.White值为2,相应在Sentence中找不到,所以直接返回整数2 s = (Sentence)Color.White; //等价于(Sentence)1; //两个不同的枚举相互转换,返回枚举值Black s = (Sentence)Color.Black; //直接输出White枚举值, 显式转为整数 Console.WriteLine(Color.White); //输出white Console.WriteLine((Int32)Color.White); //输出2 } }