枚举是一个指定的常数,其基础类型可以是除 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");
範例二:
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.NoticeNoticeType noticeType3 = (NoticeType)Enum.Parse(typeof(NoticeType), "Notice");
获得文字描述:
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();}