C#中的枚举(enum)

enum代表枚举,它是一组命名的整数常量,它们的默认整数值以0开头,我们还可以设置任何其他序列的值。

一个枚举通过使用enum关键字定义。

语法:

    enum enum_name {enumeration_list };

范例1:

在这里,我们使用三个常量RED,GREEN和BLUE定义了一个名为colors的枚举,我们没有使用任何值对其进行初始化。因此,常数将具有值012

using System;
using System.Text;

namespace Test
{
    class Program
    {
        //声明枚举
        enum colors { RED, GREEN, BLUE };
        static void Main(string[] args)
        {            
            //打印值
            Console.WriteLine("Red: {0}", (int)colors.RED);
            Console.WriteLine("Green: {0}", (int)colors.GREEN);
            Console.WriteLine("Blue: {0}", (int)colors.BLUE);
			
            //按ENTER退出
            Console.ReadLine();
        }
    }
}

输出结果

Red: 0
Green: 1
Blue: 2

范例2:

在这里,我们用三个常量RED,GREEN和BLUE定义了一个名为colors的枚举,我们用10初始化RED ,用20初始化GREEN,并且BLUE没有初始化任何值,所以它将花费21。因此,常数将具有值102021

using System;
using System.Text;

namespace Test
{
    class Program
    {
        //声明枚举
        enum colors { RED = 10, GREEN = 20, BLUE };
        static void Main(string[] args)
        {            
            //打印值
            Console.WriteLine("Red: {0}", (int)colors.RED);
            Console.WriteLine("Green: {0}", (int)colors.GREEN);
            Console.WriteLine("Blue: {0}", (int)colors.BLUE);
			
            //按ENTER退出
            Console.ReadLine();
        }
    }
}

输出结果

Red: 10
Green: 20
Blue: 21

示例3:使用foreach循环打印枚举的常量名称和值

在这里,我们使用Enum.GetValues(typeof(Days)返回所有枚举值的数组,并获取enum的名称,我们使用Enum.GetName(typeof(Days),day)。在这里,Days是枚举名称,day是索引。

using System;
using System.Text;

namespace Test
{
    class Program
    {
        //声明枚举
        enum Days { SUN, MON, TUE, WED, THU, FRE, SAT };
        static void Main(string[] args)
        {
            //使用foreach循环打印枚举
            foreach (int day in Enum.GetValues(typeof(Days)))
            {
                Console.WriteLine("Name: {0}, Value: {1}", Enum.GetName(typeof(Days), day), (int)day);
            }
			
            //按ENTER退出
            Console.ReadLine();
        }
    }
}

输出结果

Name: SUN, Value: 0
Name: MON, Value: 1
Name: TUE, Value: 2
Name: WED, Value: 3
Name: THU, Value: 4
Name: FRE, Value: 5
Name: SAT, Value: 6