C#中的枚举(enum)
enum代表枚举,它是一组命名的整数常量,它们的默认整数值以0开头,我们还可以设置任何其他序列的值。
一个枚举通过使用enum关键字定义。
语法:
enum enum_name {enumeration_list };范例1:
在这里,我们使用三个常量RED,GREEN和BLUE定义了一个名为colors的枚举,我们没有使用任何值对其进行初始化。因此,常数将具有值0,1和2。
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。因此,常数将具有值10,20和21。
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