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