C#枚举-避免不合理赋值

什么是枚举?

一年只能有12个月,每个星期只能从星期一到星期日,不能有别的日子,这些都是固定的值,不能随意变动。C#中处理这些数据就可以采用枚举。

枚举是一组已经命名的数值常量,用来定义一组具有特定值的数据类型,枚举的定义方法如下:

<访问修饰符> enum 枚举名称{枚举对象}

public enum DayWeek

{

Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday

}

这段代码定义了表示一周中包括星期几的枚举。enum是声明枚举的关键字,DayWeek是枚举的名称,大括号中的数据是枚举对象,枚举对象之间用“,”隔开。

默认情况下每个枚举都有相应的枚举值,编号顺序从0开始递增,Sunday的值是0,Tuesday的值为2,Saturday的值是6。也可以通过定义改变枚举值。

枚举值的定义:

public enum DayWeek{

Sunday=7,

Monday=1,

Tuesday=2,

Wednesday=3,

Thurday=4,

Friday=5,

Saturday=6

}

说明:这种方法显式改变了枚举的值,但通常不采用这种方法,除非程序有特殊要求。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Example_Enum

{

class EnumTest

{

//定义枚举

public enum DayWeek

{

Sunday=7,

Monday=1,

Tuesday=2,

Wednesday=3,

Thursday=4,

Friday=5,

Saturday=6

}

static void Main(string[] args)

{

Console.WriteLine("{0}和{1}是休息时间",DayWeek.Saturday,DayWeek.Sunday);

Console.WriteLine("{0}和{1}是开会的日子",DayWeek.Tuesday,DayWeek.Wednesday);

Console.WriteLine("{0}的值是{1}",DayWeek.Wednesday,Convert.ToInt32(DayWeek.Wednesday));

Console.ReadKey();

}

}

}

如何访问枚举元素?

即“枚举名称.枚举元素”获取枚举元素,再将枚举元素转换为整型即可。Convert.ToInt30()的作用就是把括号中的数据转换为整型数据。

注意:枚举属于值类型,枚举不能定义任何属性和方法,不能实现接口。