枚举是C#编程语言的一种类型,跟类、结构、密封类、分布类、委托、事件、抽象都是同一级别的类型。
枚举用enum关健字来定义。
枚举可以一次性定义一组常量和常量的使用方式一样,枚举通常用在分支语句中,这种做法可以增加程序的可读性。
枚举中的每一个元素实际上都是“符号/值”类型的。如果不给枚举中的成员附值,那么他们的值会从0开始。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//定义枚举类型
enum Days
{
Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday
}
private void button1_Click(object sender, EventArgs e)
{
DoWork(Days.Sunday);
DoWork(Days.Monday);
}
private void DoWork(Days day)
{
switch (day)
{
case Days.Sunday:
MessageBox.Show("星期天,河边钓鱼");
break;
case Days.Monday:
MessageBox.Show("星期一,正常上班");
break;
}
}
}
}
枚举使用方法很多:
1、提取枚举成员的数字部分
2、提取枚举成员的名称
3、遍历所有枚举成员
4、将字符串转换成枚举对象。。。等
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//定义枚举类型
enum Colors
{
Red = 1,
Blue = 2,
Green = 3,
Yellow = 4
}
private void button1_Click(object sender, EventArgs e)
{
//提取枚举成员中的数字,为4
int ncolor = (int)Colors.Yellow;
MessageBox.Show(ncolor.ToString());//显示验证一下对不对。
//提取枚举成员的名字,为“Red”
string strcolor = Colors.Red.ToString();
MessageBox.Show(strcolor);
//定义一个枚举对象
Colors cs = Colors.Yellow;
MessageBox.Show(cs.ToString());
//将枚举中有的字符串转换成枚举对象,不存在的字符串是不能转的
cs = (Colors)Enum.Parse(typeof(Colors), "Blue");
MessageBox.Show(cs.ToString());
//转换成功后,显示一下对应的值
ncolor = (int)cs;
MessageBox.Show(ncolor.ToString());
//遍历枚举,把枚举类型放进系统Type
//typeof()得到枚举类型对象
//得到Colors枚举类型对象中的符号名称数组
foreach (string s in Enum.GetNames(typeof(Colors)))
{
MessageBox.Show(s);
}
//通过cs枚举对象的GetType方法获取枚举类型对象
//可以实现上面遍例枚举一样的效果
foreach (string s in Enum.GetNames(cs.GetType()))
{
MessageBox.Show(s);
}
}
}
}