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()的作用就是把括号中的数据转换为整型数据。
注意:枚举属于值类型,枚举不能定义任何属性和方法,不能实现接口。