一、声明枚举值、枚举值描述

using System.ComponentModel;public enum status
{/// <summary>/// 取消/// </summary>[Description("取消")]cancel,/// <summary>/// 提交/// </summary>[Description("提交")]submit,/// <summary>/// 同意/// </summary>[Description("批准")]pass,/// <summary>/// 驳回/// </summary>[Description("驳回")]reject
}

二、获取枚举值字符串、根据枚举获取枚举值描述

/// <summary>
/// 获取枚举描述信息
/// </summary>
/// <param name="enumValue"></param>
/// <returns></returns>
public static string GetEnumDescription(this Enum enumValue) {string str = enumValue.ToString();System.Reflection.FieldInfo field = enumValue.GetType().GetField(str);object[] objs = field.GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute) , false);if (objs == null || objs.Length == 0)return str;System.ComponentModel.DescriptionAttribute da = (System.ComponentModel.DescriptionAttribute)objs[0];return da.Description;
}/*
示例:string statusDes = status.submit.GetEnumDescription();
*//// <summary>
/// 枚举字符串
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="enumValue"></param>
/// <returns></returns>
public static string GetEnumString<T>(this Enum enumValue) {return Enum.GetName(typeof(T) , enumValue);//推荐
}/*
示例:string status = status.submit.GetEnumString<status>();
*//// <summary>
/// 根据Description获取枚举
/// </summary>
/// <typeparam name="T">枚举类型</typeparam>
/// <param name="description">枚举描述</param>
/// <returns>枚举</returns>
public static string GetEnumName<T>(string description)
{Type _type = typeof(T);foreach (FieldInfo field in _type.GetFields()){DescriptionAttribute[] _curDesc = field.GetDescriptAttr();if (_curDesc != null && _curDesc.Length > 0){if (_curDesc[0].Description == description)return field.GetValue(null).ToString();}}return null;
}/*
示例:string status = GetEnumName<status>("提交");
*/

三、根据枚举值变量获取枚举描述信息

status statusEnum;
//方式1
Enum.TryParse<status>(strStatus, out statusEnum);//方式2
statusEnum = (status)Enum.Parse(typeof(status), strStatus);string strStatusDes = statusEnum.GetEnumDescription();

C# 声明枚举、枚举值描述 获取枚举值字符串 根据枚举获取枚举值描述相关推荐

  1. 使用C++枚举WINDOWS计划任务-使用管理员启动获取全计划任务,否则获取部分计划任务

    #include <atlbase.h> #include <comdef.h> #include <iostream> #include <Windows. ...

  2. 输入今天是星期几的序号,给今天和昨天赋予枚举值,并输出昨天是星期几的枚举值

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p165 习题6 4.输入今天是星期几的序号(0~6代表星期天至星期六),给今天和昨天赋予枚举值,并输出 ...

  3. 基础C语言知识串串香10☞数组字符串结构体联合体枚举

    五.数组&字符串&结构体&联合体&枚举 5.1.c语言中定义一个字符串:char a[6]={'l','i','n','u','x','\0'};'\0'的字符编码为0 ...

  4. sql获取某列出现频次最多的值_业务硬核SQL集锦

    戳上方蓝字关注我  这两年学会了跑sql,当时有很多同学帮助我精进了这个技能,现在也写成一个小教程,反馈给大家. 适用对象:工作中能接触到sql查询平台的业务同学(例如有数据查询权限的产品与运营同学) ...

  5. 【Groovy】自定义 Xml 生成器 BuilderSupport ( 继承 BuilderSupport 抽象类 | 在 createNode 方法中获取节点名称、节点属性、节点值信息 )

    文章目录 一.继承 BuilderSupport 抽象类 二.在 createNode 方法中获取节点名称.节点属性.节点值信息 三.完整代码示例 1.MyBuilderSupport 生成器代码 2 ...

  6. vue项目获取下拉框选中id_vue获取下拉框值

    vue获取下拉框的值,用vue-modle,只有点击下拉框的值才会赋值到下拉框中,初始时下拉框没有数据,而改用$event就不会出现这样的问题,下面看代码以及图解: v-model解决方式: {{it ...

  7. js解密之QQ的bkn值,获取QQ群成员信息,获取QQ好友列表信息

    js解密之QQ的bkn值,获取QQ群成员信息,获取QQ好友列表信息   Lan   2020-05-31 12:13   126 人阅读  0 条评论 QQ群网站:https://qun.qq.com ...

  8. Redis 笔记(05)— hash 类型(设置获取单个hash值、判断hash键是否存在、设置获取多个hash值、获取所有hash的键、获取所有hash的值、删除hash指定键)

    Redis 的字典是无序字典.Redis 的字典的值只能是字符串,当 hash 移除了最后一个元素之后,该数据结构自动被删除,内存被回收. hash 结构也可以用来存储用户信息,不同于字符串一次性需要 ...

  9. ibm db2获取目标时间与当前时间的差值_高帧频视觉实时目标检测系统

    基于机器视觉的智能目标检测系统应用非常广泛,尤其在航天军工等领域中,经常涉及高速目标的实时检测和控制,对目标检测的智能性和实时性提出了更严格的要求.在这种应用中,视觉系统相对雷达.声纳具有信息量大.抗 ...

  10. html 表单内容怎么获取不到,jquery中formdate一直获取不到对象中的[0]的值 包括本身也是一个空的数据怎么办?...

    jquery中formdate一直获取不到对象中的[0]的值 包括本身也是一个空的数据怎么办? 再做一个前台的ajax方法 查网上用formdate方法上传.可是进了接口之后一直在控制台获取不到for ...

最新文章

  1. 嵌入式学习笔记——SPI协议
  2. 阿里云胡晓明:未来5-10年将和中国移动互为生态
  3. bzoj 1011 近似估计
  4. 《C语言点滴》一1.5 内功修炼
  5. 什么时候出python4_什么?Python4要来了?快来看看Python之父怎么说
  6. 44.分治算法练习:  一元三次方程求解
  7. 使用 Swift 在 iOS 10 中集成 Siri —— SiriKit 教程(Part 1)
  8. [转]解决xampp无法启动apache的问题
  9. 微信小程序全局分享设置
  10. shell--字符串是否为空
  11. pc端签名 vue 生成图片_Vue Canvas 实现电子签名 手写板
  12. VMware pro 14
  13. 实现spring+mybatis+uncode dal,应用自动切换连接数据库
  14. 桥本木分式(使用回溯法求解)
  15. html 播放360全景图,讯网360全景展示产品-html5全景图-flash全景展示-360度全景图制作...
  16. python-认识(第五段-函数)
  17. AngularJS学习之angular.extend用法实例
  18. vue-cli通过symbol引用阿里iconfont图标
  19. 【学术相关】2021年国家自然科学基金高校立项情况最新数据
  20. 系统架构师(十四)信息系统

热门文章

  1. pyqt5 安装与使用
  2. 七年级计算机教室管理员解说词,完美教室解说词
  3. IPv6 02-IPv6地址配置
  4. Python之父加入微软
  5. ucos查找最高优先级任务
  6. linux下的i2c
  7. C++通过基类指针delete派生类数组,析构函数是虚函数,程序为什么会崩溃? https://www.zhihu.com/question/30838092/answer/49623765
  8. brk(); sbrk()使用
  9. Python零基础入门教程( 快速入门)
  10. namenode启动不了或者出错问题