學習C# 枚舉的那點東西
學習C# 枚舉1.類型
(1)值類型
變量直接包含它們自己的數據
局部變量總是放在棧(stack)中
(2)引用類型
變量間接指向它們的數據
局部變量指向堆(heap)中的對象
枚舉(enum) 值類型
結構(struct) 值類型
類(class) 引用類型
接口(interface) 引用類型
數組([ ]array ) 引用類型
委托(delegate) 引用類型
你可能對上面的例子感到奇怪,C#中的內在類如int,double怎么沒有。C#規定這些內在類屬于結構,C#稱之為簡單類型。簡單類型和用戶自定義類型之間的***區別是前者有字面表達式,而后者沒有。
當然,還有第三種類型:指針。但指針只用在由unsafe關鍵字標識的非安全的代碼中。
學習C# 枚舉2.枚舉類型
它是一個用戶聲明的值類型
- enum Suit
- {
- Clubs, Diamonds, Hearts, Spades
- }
- //Suit表示一副牌,它有4個花色:梅花(Clubs),
- //方塊(Diamonds),紅心(Hearts),//黑桃(Spades)
- sealed class Example
- {
- static void Main()
- {
- ...
- Suit lead = Spades; //錯誤
- ...
- Suit trumps = Suit.Clubs; //正確
- ...
- }
- }
C# 枚舉的聲明可以出現在類聲明的相同地方。
C# 枚舉的聲明包括名字、訪問權限、內在的類型和枚舉的成員。
C# 枚舉學習的基礎東西就向你介紹到這里,希望通過介紹使你對C# 枚舉有所了解和認識。
C# 枚舉中聲明的常量的范圍是定義它們的枚舉,換言之,下面的例子是錯誤的:
- Suit trumps = Clubs;
- lubs必須被限制為Suit的一個成員,就如下面:
- Suit trumps = Suit.Clubs;
學習C# 枚舉3.枚舉的注意點
C# 枚舉值缺省為int
你可以選擇任一內在的整數類型
但不能是字符型
- enum Suit : int //內在類型是int,可以省略
- {
- Clubs,
- Diamonds,
- Hearts = 42,
- //成員的取值缺省為前一個成員取值+1,但可以自己賦初值
- Spades, //***一個分號是可選的
- };//可以有結尾分號
C# 枚舉類可以顯式的聲明它的內在類型是sbyte, byte, short, ushort, int, uint, long, ulong。如果一個枚舉類沒有顯式聲明它的內在類型,則缺省為int。
成員的取值必須和枚舉聲明的內在類型相同,并且必須在內在類型的范圍之內(例如,你不能讓成員的取值為負數,而枚舉的內在類型是uint)。
如果成員沒有被賦值, 那么它的取值是前一個成員取值+1,***個成員的缺省值是1。枚舉的成員的取值可以有相同的取值。
***一個枚舉成員可以使用一個結尾分號,這使得你將來可以很方便地加入更多的成員。
學習C# 枚舉要注意:枚舉成員的訪問權限隱含為public。
【編輯推薦】