C# 快速導覽 - enum 型態

關鍵字 (keyword) enum 用來建立列舉型態,這是一種實值型態,簡單說就是依序遞增的整數數列或設定好的整數。



舉例如下
class Demo {
    enum Days {Mon, Tue, Wed, Thu, Fri, Sat, Sun};
    
    static void Main() {
        System.Console.WriteLine("{0}:{1}", Days.Mon, (int) Days.Mon);
        System.Console.WriteLine("{0}:{1}", Days.Tue, (int) Days.Tue);
        System.Console.WriteLine("{0}:{1}", Days.Wed, (int) Days.Wed);
        System.Console.WriteLine("{0}:{1}", Days.Thu, (int) Days.Thu);
        System.Console.WriteLine("{0}:{1}", Days.Fri, (int) Days.Fri);
        System.Console.WriteLine("{0}:{1}", Days.Sat, (int) Days.Sat);
        System.Console.WriteLine("{0}:{1}", Days.Sun, (int) Days.Sun);
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:enum1.cs
    功能:示範 C# 程式 
    作者:張凱慶
    時間:西元 2013 年 6 月 */


編譯執行,結果如下



這裡沒有作任何設定,因此 Mon 從 0 開始,往後依序遞增。


設定整數就是在識別字後面加上等號,自行指派整數值,例如
class Demo {
    enum Days {Mon = 1, Tue, Wed, Thu, Fri, Sat, Sun};
    
    static void Main() {
        System.Console.WriteLine("{0}:{1}", Days.Mon, (int) Days.Mon);
        System.Console.WriteLine("{0}:{1}", Days.Tue, (int) Days.Tue);
        System.Console.WriteLine("{0}:{1}", Days.Wed, (int) Days.Wed);
        System.Console.WriteLine("{0}:{1}", Days.Thu, (int) Days.Thu);
        System.Console.WriteLine("{0}:{1}", Days.Fri, (int) Days.Fri);
        System.Console.WriteLine("{0}:{1}", Days.Sat, (int) Days.Sat);
        System.Console.WriteLine("{0}:{1}", Days.Sun, (int) Days.Sun);
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:enum2.cs
    功能:示範 C# 程式 
    作者:張凱慶
    時間:西元 2013 年 6 月 */


編譯執行,結果如下



中英文術語對照
關鍵字keyword


您可以繼續參考
其他內建型態


相關目錄
回 C# 快速導覽
回 C# 教材
回首頁


參考資料
Standard ECMA-334 C# Language Specification
msdn: enum (C# 參考)

1 則留言:

Unknown 提到...

老師你好,我有一個地方不太明白
雖然我了解 enum Days {Mon, Tue, Wed, Thu, Fri, Sat, Sun}; 中Mon,Tue,Wed,Thu..為int形態的1,2,3,4...
但在 System.Console.WriteLine("{0}:{1}", Days.Mon, (int) Days.Mon); 中的{0}和{1}代表的是什麼意思我就不了解了,為什麼這樣子寫,螢幕上就會輸出Mon和0,雖然我是有去微軟的MSDN上面找過答案,但是還是不懂