顯示枚舉、枚舉值、枚舉名:
using System;class MyClass{ enum MyEnum { AA, BB, CC }; /* 類型定義不能在函數體內 */ static void Main() { MyEnum e = MyEnum.CC; Console.WriteLine(e); // CC Console.WriteLine((byte)e); // 2 Console.WriteLine((int)e); // 2 Console.WriteLine(Convert.ToString(e)); // CC Console.ReadKey(); }}
轉換數值或字串到枚舉:
using System;class MyClass{ enum MyEnum { AA, BB, CC }; static void Main() { MyEnum e; e = (MyEnum)1; Console.WriteLine(e); // BB e = (MyEnum)Enum.Parse(typeof(MyEnum), "BB"); Console.WriteLine(e); // BB Console.ReadKey(); }}
擷取枚舉的 Names 和 Values:
using System;class MyClass{ enum MyEnum { AA, BB, CC }; static void Main() { foreach (string s in Enum.GetNames(typeof(MyEnum))) { Console.WriteLine(s); // AA/BB/CC } foreach (int n in Enum.GetValues(typeof(MyEnum))) { Console.WriteLine(n); // 0/1/2 } Console.ReadKey(); }}
枚舉值是一個整數(預設是 int 類型、從 0 開始), 可以自訂枚舉值:
using System;class MyClass{ enum MyEnum { AA=2, BB, CC=7, DD, EE }; static void Main() { foreach (int i in Enum.GetValues(typeof(MyEnum))) { Console.WriteLine(i); // 2/3/7/8/9 } Console.ReadKey(); }}
可以指定所有整型(不包括 char 類型)為枚舉值的類型, 下面是指定為 byte:
using System;class MyClass{ enum MyEnum : byte { AA, BB, CC, DD }; static void Main() { string[] Names = Enum.GetNames(typeof(MyEnum)); foreach (string s in Names) { Console.WriteLine(s); // AA/BB/CC/DD } byte[] Values = (byte[])Enum.GetValues(typeof(MyEnum)); foreach (byte n in Values) { Console.WriteLine(n); // 0/1/2/3 } Console.ReadKey(); }}
枚舉經常這樣用:
using System;class MyClass{ enum MyEnum { AA = 0x0, BB = 0x1, CC = 0x2, DD = 0x4, EE = 0x8, FF = 0x10, GG = 0x20, HH = 0x40 } static void Main() { MyEnum es = MyEnum.CC | MyEnum.DD; Console.WriteLine(es); // 6 Console.ReadKey(); }}