全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C# 从枚举值获取对应的文本描述详解

C# 从枚举值获取对应的文本描述详解

有时枚举值在显示时,需要显示枚举值对应的文本串。一种方案是在调用的地方使用switch或者if来判断枚举值,然后赋给不同的文本串,但这样一来,如果有较多的地方都用到的时候就会比较麻烦。当然有人说,这种情况下,可以针对这种枚举值封装一个方法,然后来调用。那如果有多个枚举类型都有这样的需求呢?有没有什么比较通用的解决办法?有的。

这里需要用到Description属性,给每个枚举值都赋上一个该属性,然后在该属性中赋上要描述的文本串。比如

#region YesNoEnum 
 public enum YesNoEnum 
 { 
   [Description("是")] 
   Yes, 
   [Description("否")] 
   No 
 } 
 #endregion 

注:Desscription需要引用using System.ComponentModel;

那要如何获取这个Description属性的值呢?我们可以作用反射,代码如下

public static class EnumUtil 
 { 
   #region FetchDescription 
   /// <summary> 
   /// 获取枚举值的描述文本 
   /// </summary> 
   /// <param name="value"></param> 
   /// <returns></returns> 
   public static string FetchDescription(this Enum value) 
   { 
     FieldInfo fi = value.GetType().GetField(value.ToString()); 
     DescriptionAttribute[] attributes = 
        (DescriptionAttribute[])fi.GetCustomAttributes( 
        typeof(DescriptionAttribute), false); 
     return (attributes.Length > 0) ? attributes[0].Description : value.ToString(); 
   } 
   #endregion 
 } 

注:我们这里写的虽然是静态方法,但是可以适用于所有的Enum类。EnumUtil必须是静态类,而方法也必须是静态方法,同时第一个参数必须是this的,这样才能将方法扩展到Enum类中,以适用到所有的枚举中。

下面是调用代码

YesNoEnum yesNoEnum = YesNoEnum.Yes; 
 string description = yesNoEnum.FetchDescription(); 
 Console.WriteLine(description); 

调用的截图如下



从图中可以看到description得到了我们在枚举中指定的Description的文本。同时YesNoEnum的枚举实例增加了扩展方法FetchDescription.

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# C#  # 从枚举值获取对应的文本描述  # 枚举值  # C# 遍历枚举类型的所有元素  # C# 获取枚举值的简单实例  # 深入理解C#中的枚举  # 深入解析c#中枚举类型的定义与使用  # 关于c#中枚举类型支持显示中文的扩展说明  # C#枚举数值与名称的转换实例分享  # C#实现获取枚举中元素个数的方法  # C#中可枚举类型详解  # 如何在C# 枚举中增加行为  # 就会  # 是在  # 都有  # 第一个  # 多个  # 适用于  # 我们可以  # 希望能  # 可以看到  # 较多  # 人说  # 谢谢大家  # 解决办法  # 图中  # 有没有什么  # 上要  # 扩展到  # 类中  # 增加了  # 得到了 


相关文章: 建站之星代理如何优化在线客服效率?  建站之星3.0如何解决常见操作问题?  如何在阿里云虚拟主机上快速搭建个人网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何用wdcp快速搭建高效网站?  网站按钮制作软件,如何实现网页中按钮的自动点击?  seo网站制作优化,网站SEO优化步骤有哪些?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  图册素材网站设计制作软件,图册的导出方式有几种?  如何用免费手机建站系统零基础打造专业网站?  如何选择高效便捷的WAP商城建站系统?  西安专业网站制作公司有哪些,陕西省建行官方网站?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  ui设计制作网站有哪些,手机UI设计网址吗?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  小建面朝正北,A点实际方位是否存在偏差?  h5网站制作工具有哪些,h5页面制作工具有哪些?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  建站上传速度慢?如何优化加速网站加载效率?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  python的本地网站制作,如何创建本地站点?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何通过虚拟机搭建网站?详细步骤解析  如何快速搭建高效WAP手机网站吸引移动用户?  Bpmn 2.0的XML文件怎么画流程图  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  Swift中swift中的switch 语句  香港服务器选型指南:免备案配置与高效建站方案解析  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  建站之星伪静态规则如何正确配置?  如何通过VPS建站无需域名直接访问?  如何用西部建站助手快速创建专业网站?  建站主机是什么?如何选择适合的建站主机?  如何在宝塔面板创建新站点?  如何通过多用户协作模板快速搭建高效企业网站?  如何快速生成高效建站系统源代码?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  ppt制作免费网站有哪些,ppt模板免费下载网站?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何快速配置高效服务器建站软件?  开封网站制作公司,网络用语开封是什么意思?  Swift中switch语句区间和元组模式匹配  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  如何在建站之星绑定自定义域名?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。