using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _20.枚举类型 { enum orientation : byte { north = 1, south = 2, east = 3, west = 4 } class Program { static void Main(string[] args) { /** * 枚举类型: * 使用enum关键字定义枚举类型。 * 其定义语法: * enum <typeName> [: <underlyingType>] * { * <value1>, * <value2>, * <value3>, * ... * <valueN> * } * * 定义枚举变量: * <typeName> <varName>; * * 引用枚举变量: * <varName> = <typeName>.<value>; * * 解析说明: * 1. 枚举使用一个基本类型来存储。 * 2. 枚举类型可以提取每个值都存储为该基本类型的一个值,默认情况下该类型为int。 * 3. <underlyingType>用来指定枚举值类型。 * 4. 枚举的基本类型:byte,sbyte,short,ushort,int,uint,long,ulong。 * 5. 在默认情况下,每个值都会根据定义的顺序(从0开始),自动赋值给对应的基本类型值。 * 6. 使用=号运算符,指定每个枚举的实际值,可以多个枚举指定相同的值。 * 7. 以循环方式指定枚举值会出现错误。 * 例如: * enum <typeName> : <underlyingType> * { * <value1> = <value2>, * <value2> = <value1>, * } * */ byte directionByte; string directionString ; orientation myDirection = orientation.north; Console.WriteLine("myDirection = {0}", myDirection); directionByte = (byte)myDirection; directionString = Convert.ToString(myDirection); Console.WriteLine("byte equivalent = {0}", directionByte); Console.WriteLine("string equivalent = {0}", directionString); Console.WriteLine("string equivalent = {0}", myDirection.ToString()); // 以下方法作用:把string类型转换为枚举值。 // (enumerationType)Enum.Parse(typeof(enumerationType), enumerationValueString); // enumerationValueString参数是区分大小写的。 // typeof运算符是得到操作数的类型。 string myString = "west"; orientation direction = (orientation)Enum.Parse(typeof(orientation), myString); Console.WriteLine("direction = {0}", (byte)direction); Console.ReadKey(); } } }
时间: 2024-10-21 04:27:46