C#枚舉

枚舉(enum)是一組命名的整數常量。枚舉類型是使用enum關鍵字來聲明。

C# 枚舉是值數據類型。 換句話說,枚舉包含其自己的值,並且不能繼承或不能傳遞繼承。

聲明枚舉變量

聲明枚舉的一般語法是:

enum <enum_name> 
{
   enumeration list 
};

其中,

  • enum_name - 指定枚舉類型名稱。
  • enumeration list - 是使用逗號分隔的標識符列表。

枚舉列表中的每個符號表示一個整數值,後面符號的值大於前面符號的值。 默認情況下,第一個枚舉符號的值爲0,例如:

enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };

示例

以下示例演示瞭如何使用枚舉變量:

using System;
namespace EnumApplication
{
   class EnumProgram
   {
      enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };

      static void Main(string[] args)
      {
         int WeekdayStart = (int)Days.Mon;
         int WeekdayEnd = (int)Days.Fri;
         Console.WriteLine("Monday: {0}", WeekdayStart);
         Console.WriteLine("Friday: {0}", WeekdayEnd);
         Console.ReadKey();
      }
   }
}

當編譯和執行上述代碼時,會產生以下結果:

Monday: 1
Friday: 5

更改開始索引示例

using System;  
public class EnumExample  
{  
    public enum Season { WINTER=10, SPRING, SUMMER, FALL }    

    public static void Main()  
    {  
        int x = (int)Season.WINTER;  
        int y = (int)Season.SUMMER;  
        Console.WriteLine("WINTER = {0}", x);  
        Console.WriteLine("SUMMER = {0}", y);  
    }  
}

當編譯和執行上述代碼時,會產生以下結果:

WINTER = 10
SUMMER = 12

枚舉示例:使用getNames()遍歷所有值

using System;  
public class EnumExample  
{  
    public enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat };  

    public static void Main()  
    {  
        foreach (string s in Enum.GetNames(typeof(Days)))  
        {  
            Console.WriteLine(s);  
        }  
    }  
}

當編譯和執行上述代碼時,會產生以下結果:

Sun
Mon
Tue
Wed
Thu
Fri
Sat

枚舉示例:使用getValues()遍歷所有值

using System;  
public class EnumExample  
{  
    public enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat };  

    public static void Main()  
    {  
        foreach (Days d in Enum.GetValues(typeof(Days)))  
        {  
            Console.WriteLine(d);  
        }  
    }  
}

當編譯和執行上述代碼時,會產生以下結果:

Sun
Mon
Tue
Wed
Thu
Fri
Sat