C#枚举类型
枚举是一个指定的常数,其基础类型可以是除 Char 外的任何整型。如果没有显式声明基础类型,则使用 Int32。
定义
默认基数从0开始,也可指定数值。
enum Days { Saturday, //默认基数从O开始 Sunday, //1 Monday, Tuesday, Wednesday, Thursday, Friday }; enum Colors { Red = 1, //指定默认基数 1 Green, //2 Blue = 4, Yellow = 8 };
public enum NoticeType
{
Notice = 'A',
LabRule = 'H',
HotInformation = 'N',
Column = 'C',
All = '1',
Null = '0'
};
使用
Enum 提供一些实用的静态方法:
- 比较枚举类的实例的方法
- 将实例的值转换为其字符串表示形式的方法
- 将数字的字符串表示形式转换为此类的实例的方法
- 创建指定枚举和值的实例的方法。
Colors myColors = Colors.Red; //新建枚举对象 NoticeType noticeType = NoticeType.Column; //新建枚举对象 string strColor = myColors.tostring() ; //Enum-->String,strColor值为"Red" string strColor = Enum.GetName(typeof(Colors),2)); //Enum-->String,strColor值为"Green" string strColor = Enum.GetName(typeof(Colors), Colors.Blue)); //Enum-->String,strColor值为"Blue" string[] strDayArray = Enum.GetNames(typeof(Days)); //Enum-->String[],用于遍历 Days ds = (Days)Enum.Parse(typeof(Days), "Monday"); //String-->Enum Colors mc = (Colors)Enum.Parse(typeof(Colors ), "red"); //String-->Enum NoticeType nt=(NoticeType)Enum.Parse(typeof(NoticeType), "Notice"); //String--Enum int IntColor=(int)Colors.Red; //Enum-->基类,IntColor值为1 byte byteColor=(byte)Colors.Green; //Enum-->基类 char dd = (char)noticeType; //Enum-->基类,dd值为'C' Colors color = (Colors)2; //基类-->Enum Colors color = (Colors)Enum.ToObject(typeof(Colors), 2); //基类-->Enum NoticeType noticeType = (NOticeType)'A'; //基类-->Enum NoticeType noticeType = (NoticeType)Char.Parse("A"); //基类-->Enum 另一种方式 bool isdefined = Enum.IsDefined(typeof(Colors), 2)); //判断基类值为2的枚举是否存在 bool isdefined = System.Enum.IsDefined(typeof(Days), "Monday") //判断Name值为"Monday"的枚举是否存在 Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow; //位或 Colors myColors = Colors.Red & Colors.Blue & Colors.Yellow; //位与
参考资料
http://www.cnblogs.com/an-wl/archive/2011/04/14/2015815.html
http://www.cnblogs.com/pato/archive/2011/08/15/2139705.html