枚举是一个指定的常数,其基础类型能够是除 Char 外的任何整型。
若是没有显式声明基础类型,则使用 Int32。
编程语言一般提供语法来声明由一组已命名的常数和它们的值组成的枚举。
定义默认基数从O开始,也可指定数值。编程
範例一:编程语言
enum Days { Saturday=1, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday }; enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 }; Colors myColors = Colors.Red; string strColor=myColors.tostring(); int IntColor=(int)myColors ; //位或 Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow; //位与 Colors myColors = Colors.Red & Colors.Blue & Colors.Yellow; //遍历 foreach (string s in Enum.GetNames(typeof(Days))) Response.Write(s + "--" + Enum.Parse(typeof(Days), s).ToString()); //转换 Colors mc=Colors Enum.Parse(typeof(Colors ), "red"); if (System.Enum.IsDefined(typeof(Days), "Monday")) Days ds= (Days)Enum.Parse(typeof(Days), "Monday");
範例二:this
public enum NoticeType { Notice = 'A', LabRule = 'H', HotInformation = 'N', Column = 'C', All = '1', Null = '0' } //新建枚举类型 NoticeType noticeType1 = NoticeType.Column; //把枚举类型转换为string d="Column" string d = noticeType1.ToString(); //取得枚举类型的基数 dd='C' char dd = (char)noticeType1; //经过基数取得对应的枚举类型 noticeType2 = NoticeType.Notice //(NoticeType)'A'; 两种方式均可以 NoticeType noticeType2 = (NoticeType)Char.Parse("A"); //经过名称取得枚举类型 noticeType3 = NoticeType.Notice NoticeType noticeType3 = (NoticeType)Enum.Parse(typeof(NoticeType), "Notice");
得到文字描述:spa
using System.ComponentModel; // 先添加该引用 enum Direction { [Description("this means facing to UP (Negtive Y)")] UP = 1, [Description("this means facing to RIGHT (Positive X)")] RIGHT = 2, [Description("this means facing to DOWN (Positive Y)")] DOWN = 3, [Description("this means facing to LEFT (Negtive X)")] LEFT = 4 }; //使用以下方法来得到文字描述: using System.Reflection; using System.ComponentModel; public static String GetEnumDesc(Direction e) { FieldInfo EnumInfo = e.GetType().GetField(e.ToString()); DescriptionAttribute[] EnumAttributes = (DescriptionAttribute[]) EnumInfo. GetCustomAttributes (typeof(DescriptionAttribute), false); if (EnumAttributes.Length > 0) { return EnumAttributes[0].Description; } return e.ToString(); }