C# 枚举(Enum)
在數(shù)學和計算機科學理論中,一個集的枚舉是列出某些有窮序列集的所有成員的程序,或者是一種特定類型對象的計數(shù)。這兩種類型經(jīng)常(但不總是)重疊。[1] ?是一個被命名的整型常數(shù)的集合,枚舉在日常生活中很常見,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一個枚舉。
在計算機,枚舉是一組命名整型常量。枚舉類型是使用 enum 關鍵字聲明的。C#枚舉是值類型。換句話說,枚舉包含自己的值,且不能繼承或傳遞繼承。
聲明枚舉的一般語法:
enum?<enum_name> {?enumeration?list? };其中,
enum_name 指定枚舉的類型名稱。
enumeration list 是一個用逗號分隔的標識符列表。
枚舉列表中的每個符號代表一個整數(shù)值,一個比它前面的符號大的整數(shù)值。默認情況下,第一個枚舉符號的值是 0.例如:
enum?Days?{?Sun,?Mon,?tue,?Wed,?thu,?Fri,?Sat?};下面的實例演示了枚舉變量的用法:
using?System;public?class?EnumTest {enum?Day?{?Sun,?Mon,?Tue,?Wed,?Thu,?Fri,?Sat?};static?void?Main(){int?x?=?(int)Day.Sun;int?y?=?(int)Day.Fri;Console.WriteLine("Sun?=?{0}",?x);Console.WriteLine("Fri?=?{0}",?y);} }當上面的代碼被編譯和執(zhí)行時,它會產生下列結果:
Sun?=?0 Fri?=?5System.Enum 類型和枚舉約束 System.Enum 類型是所有枚舉類型的抽象基類。它提供多種方法來獲取有關枚舉類型及其值的信息。有關更多信息和示例,請參閱 System.Enum API 參考頁。
從 C# 7.3 開始,你可以在基類約束中使用 System.Enum(稱為枚舉約束),以指定類型參數(shù)為枚舉類型。所有枚舉類型也都滿足 struct 約束,此約束用于指定類型參數(shù)為不可為 null 的值類型。
對于任何枚舉類型,枚舉類型與其基礎整型類型之間存在顯式轉換。如果將枚舉值轉換為其基礎類型,則結果為枚舉成員的關聯(lián)整數(shù)值。
public?enum?Season {Spring,Summer,Autumn,Winter }public?class?EnumConversionExample {public?static?void?Main(){Season?a?=?Season.Autumn;Console.WriteLine($"Integral?value?of?{a}?is?{(int)a}");??//?output:?Integral?value?of?Autumn?is?2var?b?=?(Season)1;Console.WriteLine(b);??//?output:?Summervar?c?=?(Season)4;Console.WriteLine(c);??//?output:?4} }使用 Enum.IsDefined 方法來確定枚舉類型是否包含具有特定關聯(lián)值的枚舉成員。
對于任何枚舉類型,都存在分別與 System.Enum 類型的裝箱和取消裝箱相互轉換。
總結
以上是生活随笔為你收集整理的C# 枚举(Enum)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文读懂 .NET 中的高性能队列 Ch
- 下一篇: C#实例:datagridview单元格