C#枚举相关用法
发布时间:2020-12-16 01:24:50 所属栏目:百科 来源:网络整理
导读:什么是枚举? 枚举是一组命名整型常量。枚举类型是使用? enum ?关键字声明的。枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 定义枚举 : public enum Direction{ [Description("东")] East,[Description("南")] South,[Description("
什么是枚举? 枚举是一组命名整型常量。枚举类型是使用?enum?关键字声明的。枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 定义枚举: public enum Direction { [Description("东")] East,[Description("南")] South,[Description("西")] West,[Description("北")] North } 默认枚举的int值从零开始,枚举的下一项int值会自动累加上一个枚举项的值。例如:East = 1,则South=2,West=3,以此类推。。。 或East = 4,则South=5,West=7,North=8。。。 获取枚举的int值: var eastNumber = (int)Direction.East; // eastNumber = 0; 获取枚举字符串: var eastString = Direction.East.ToString(); // eastString= "East"; int转枚举: var east = (Direction)0; // east = Direction.East string转枚举: const string strEnum = "East"; // ignoreCase: true/false (是否忽略大小写。true:忽略大小写(默认),false: 不忽略) var east = Enum.Parse(typeof(Direction),strEnum,ignoreCase: true); // east = Direction.East; 获取枚举的描述(Description): /// <summary> /// 获取枚举描述的方法 /// </summary> /// <param name="enumValue"></param> /// <returns></returns> public static string GetEnumDescription(Enum enumValue) { string value = enumValue.ToString(); FieldInfo field = enumValue.GetType().GetField(value); object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute),false); //获取描述属性 if (objs.Length == 0) //当描述属性没有时,直接返回名称 return value; DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0]; return descriptionAttribute.Description; } // 调用获取枚举描述的方法 var description = GetEnumDescription(Direction.East); // description = "东"; 枚举的循环: foreach (Direction item in Enum.GetValues(typeof(Direction))) { // item is East/South/West/North } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c – 使用boost :: spirit :: qi :: phrase_parse将值存储在
- sync_supers 线程造成 CPU user time 达到80%
- xml格式文件(大概有50G)转换为json格式 上传到mongodb数据
- ajax交互post数据格式问题
- c# – MVC控制器和业务逻辑之间的区别(3层)
- Day13持久化存储——SQLite数据库存储(增删改)
- opengl之vsh、fsh简易介绍+cocos2dx 3.0 shader 变灰
- A Simple Review Of 《Query Languages for Graph Database
- flex的debug
- ios – 没有为Xcode 6.1编译的架构