顯示枚舉、枚舉值、枚舉名:
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();
}
}