enum 关键字用于声明枚举,一组整型常量;
通常最好是直接在命名空间内定义枚举,以便命名空间中的所有类都可以同样方便地访问它。 但是,也可能会在类或结构中嵌套枚举。
默认情况下,第一个枚举数具有值 0,并且每个连续枚举数的值将增加
1。 例如,在以下枚举中,A的值为 0,B 的值为 1, C 的值为 2,依次类推。
enum KeyCode {A,B,C,D,E};
枚举数可以使用初始值设定项来替代默认值,如下面的示例中所示。enum KeyCode {A=65,B,C,D,E};
在此枚举中,强制元素的序列从65开始,而不是 0。 但建议包括一个值为 0 的常量。
每个枚举类型都有一个基础类型,该基础类型可以是除 char 外的任何整型类型。 枚举元素的默认基础类型是 int。若要声明另一整型的枚举
(如 byte),则请在后跟该类型的标识符后使用冒号,如以下示例所示。
enum KeyCode:Byte {A=65,B,C,D,E};
已批准的枚举类型有 byte、sbyte、short、ushort、int、uint, long 或 ulong。
可以通过转换为基础类型来验证基础数值,如下例所示。KeyCode key=KeyCode.A;
Console.WriteLine(key);//输出A->KeyCode byte num=(byte)key;
Console.WriteLine(num);//输出打印65;
//enum->string KeyCode.A.ToString();
//enum->byte (byte)KeyCode.A
//byte->enum
KeyCode k=(KeyCode)65;
//Enum是所有枚举基类,抽象类;
//提供一系列静态方法让进行类型转换; KeyCode AKey = KeyCode.A;
Console.WriteLine("KeyCode.A={0}",AKey); Console.WriteLine("(byte)KeyCode.A={0}",
(byte)KeyCode.A);
Console.WriteLine("(KeyCode)65={0}", (KeyCode)65); string key = KeyCode.A.ToString(); Console.WriteLine("KeyCode.A.ToString()={0}",key);
//把字符串转换成枚举string value = "装备"; ItemType type =
(ItemType)Enum.Parse(typeof(ItemType), value); Console.WriteLine(type);