Enum in C#
C#中的枚舉類型
枚舉類型提供了一種有效的方式來定義可能分配給變量的一組已命名整數常量。
例如,假設你需要定義一個變量,其值表示交通指示燈。 若要定義這些值,可以使用枚舉類型,該類型是使用 enum 關鍵字聲明的。
enum EnumLight { Red, Yellow, Green }
每個枚舉類型都有一個基礎類型,該基礎類型可以是除 char 外的任何整型類型。 枚舉元素的默認基礎類型是 int。 枚舉的已批準類型有 byte、sbyte、short、ushort、int、uint、long 或 ulong。若要聲明另一整型類型的枚舉(如 byte),則請在后跟該類型的標識符后使用冒號.
enum EnumLight : byte { Red, Yellow, Green }
在此枚舉中,默認元素的序列從 1 開始,而不是 0。 但建議包括一個值為 0 的常量。用于指示一個初始的無效的枚舉值。
如:
enum EnumLight : byte {None=0, Red, Yellow, Green }
枚舉類型的基本數據類型,表示其內存中的存儲方式。但將 enum 類型轉換為整型,則必須使用顯示轉換。 例如,以下語句通過使用轉換將 enum 轉換為 int,從而將枚舉器 Sun 賦值為 int 類型的變量。
int n = (int)EnumLight.Red;
可以將任意整數值分配給int類型的變量, 例如,代碼行 EnumLight light = (EnumLight) 10不會產生錯誤。
但后面的代碼使用該值可能導致錯誤。
作為位標志的枚舉類型
在C#中可以使用枚舉類型來定義位標志,這使枚舉類型的實例能夠存儲枚舉器列表中定義的值的任何組合。
創建位標志枚舉的方法是,應用System.FlagsAttribute屬性并適當定義一些值,以便可以對這些值執行 AND、OR、NOT 和 XOR 按位運算。 在位標志枚舉中,包括一個值為零(表示“未設置任何標志”)的命名常量。 如果零值不表示“未設置任何標志”,請勿為標志指定零值。
MS的示例:
[Flags] enum Days {None = 0x00,Sunday = 0x01,Monday = 0x02,Tuesday = 0x04,Wednesday = 0x08,Thursday = 0x10,Friday = 0x20,Saturday = 0x40 } class TestClass {Days meetingDays = Days.Tuesday | Days.Thursday; }使用 System.Enum 方法來發現和操作枚舉值
所有枚舉都是System.Enum類型的實例。 不能從System.Enum中派生新類,但可以使用它的方法來發現有關枚舉實例中操作值的信息。
string s = Enum.GetName(typeof(Days), 4); Console.WriteLine(s);Console.WriteLine("The values of the Days Enum are:"); foreach (int i in Enum.GetValues(typeof(Days)))Console.WriteLine(i);Console.WriteLine("The names of the Days Enum are:"); foreach (string str in Enum.GetNames(typeof(Days)))Console.WriteLine(str);總結
以上是生活随笔為你收集整理的Enum in C#的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSharp中的数组和ArrayList
- 下一篇: C# 中的char 和 byte