1. 程式人生 > >146-列舉型別

146-列舉型別

除了簡單的變數型別之外,C#還提供了3個複雜的變數:列舉,結構和陣列。

列舉型別的定義
enum <typeName>{
<value1>,
<value2>,
<value3>,
...
<valueN>
}
列舉型別的宣告 <typeName> <varName>;
列舉型別的賦值<varName>=<typeName>.<value>;

在遊戲中我們可以定義一個int型別來儲存狀態 0 遊戲暫停 1遊戲失敗 2遊戲勝利 3開始選單,但是這樣不容易閱讀,而且容易出錯。
這個時候我們通過列舉型別來解決
enum GameState{
Pause,
Failed,
Success,
Start
}
在遊戲中定義一個 GameState state = GameState.Start;

列舉可以放在namespace下,也可以放在class裡面。

列舉型別中的每一個值其實都是整數,預設為int型別

 

預設情況下列舉型別中的值從0開始,我們可以直接在列舉型別定義的時候使用=運算子給每一個列舉指定特定值,這樣它後面的值也受影響,從被改值開始重新遞增。

    enum GameState:byte//預設為int。修改該列舉型別的儲存型別為byte以節約記憶體
    {
        Pause = 100, 
        Failed = 101,
        Success,//值為102
        Start=200
    }