C# 枚举类型 enum (一)
1.枚举使用enum关键字来声明,与类同级。枚举可以和类并列也可以
写在类里面,不能写在方法里。
2.枚举是值类型,隐式继承自System.Enum,不能手动修改。
System.Enum本身是引用类型,继承自 System.ValueType。
3.·枚举本身一般不加访问修饰符,要加的话只能是internal
或public;
·枚举都是隐式密封的(sealed),不允许作为基类派生子类。
4.枚举里面的成员只能是默认公共的静态的(public、static),不能
有访问修饰符;
5.·每种枚举类型都有基础类型,该类型可以是任何整型, 枚举元素
的默认基础类型为 int。
·默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次
递增 1。
·枚举数可以具有重写默认值的初始值设定项。但是,强烈建议枚
举包含一个值为 0 的常量。
·枚举元素不可以重复,枚举元素的值可以重复。
·枚举数的名称中不能包含空白。
6.最后一个元素后的逗号可有可无。枚举最后的冒号可有可无。
7.基础类型指定为每个枚举数分配的存储大小。但是,从 enum 类型
到整型的转换需要用显式类型转换来完成。
详情看下面代码:
1 namespace EnumTest01 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 //3.----------------------------------------------------------------------------------------------------- 8 //***基础类型指定为每个枚举数分配的存储大小。但是,从 enum 类型到整型的转换需要用显式类型转换来完成。 9 int a = (int)Days1.Fri; 10 Console.WriteLine(a); //打印6 11 Console.WriteLine(Days1.Fri); //打印Fri 12 13 Console.ReadKey(); 14 } 15 16 //4.------------------------------------------------------------------------------------------------- 17 //***枚举可以和类并列也可以写在类里面,不能写在方法里。 18 enum A : byte 19 { 20 21 } 22 } 23 24 25 //1.--------------------------------------------------------------------------------------------- 26 27 //***枚举本身一般不加访问修饰符,要加的话只能是internal或public. 28 enum Animal //此处可以加访问修饰符internal或者public。 29 { 30 dog = 1, //枚举里面的成员是默认公共的,不能有其他修饰符。 31 cat = 0, 32 pig = 1, 33 //pig = 0 34 } 35 36 //***枚举都是隐式密封的,不允许作为基类派生子类。 37 //enum M : Animal { } //这里会报错,因为枚举不能作为基类去派生子类。 38 39 //***枚举里面的成员只能是默认公共的静态的,默认为Int32类型,不能有访问修饰符。 40 41 42 //2.--------------------------------------------------------------------------------------------- 43 44 //***每种枚举类型都有基础类型,该类型可以是任何整型, 枚举元素的默认基础类型为 int. 45 //byte的位置可以写: byte、sbyte、short、ushort、int、uint、long、ulong。不写的话默认为int. 46 enum A : byte 47 { 48 49 } 50 51 //***默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。例如: 52 enum Days1 { Sat, Sun, Mon, Tue, Wed, Thu, Fri }; 53 //在 Days1 枚举中,Sat 为 0,Sun 为 1,Mon 为 2,依此类推。枚举数可以具有重写默认值的初始值设定项。例如: 54 enum Days2 { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri }; 55 //在 Days2 枚举中,强制元素序列从 1 而不是 0 开始, Sat 为 1,Sun 为 2,Mon 为 3,依此类推。但是,强烈建议枚举包含一个值为 0 的常量。 56 57 //***枚举元素不可以重复,枚举元素的值可以重复。 58 enum Days3 59 { 60 Sat = 0, 61 //Sat = 0, //此处会报错,以为已经定义了一个Sat. 枚举成员不能相同,但枚举的值可以相同。 62 Sun = 1, 63 Mon = 1, 64 Tue, 65 Wed, 66 Thu = 10, 67 Fri, //最后一个元素后的逗号可有可无。 68 }; //枚举最后的这个冒号可有可无。 69 //在 Days3 枚举中, Tue的值是2,Wed的值是3,Fri的值是11。 70 71 //***枚举数的名称中不能包含空白。 72 }