时间:2021-05-19
C# 从枚举值获取对应的文本描述详解
有时枚举值在显示时,需要显示枚举值对应的文本串。一种方案是在调用的地方使用switch或者if来判断枚举值,然后赋给不同的文本串,但这样一来,如果有较多的地方都用到的时候就会比较麻烦。当然有人说,这种情况下,可以针对这种枚举值封装一个方法,然后来调用。那如果有多个枚举类型都有这样的需求呢?有没有什么比较通用的解决办法?有的。
这里需要用到Description属性,给每个枚举值都赋上一个该属性,然后在该属性中赋上要描述的文本串。比如
#region YesNoEnum public enum YesNoEnum { [Description("是")] Yes, [Description("否")] No } #endregion注:Desscription需要引用using System.ComponentModel;
那要如何获取这个Description属性的值呢?我们可以作用反射,代码如下
注:我们这里写的虽然是静态方法,但是可以适用于所有的Enum类。EnumUtil必须是静态类,而方法也必须是静态方法,同时第一个参数必须是this的,这样才能将方法扩展到Enum类中,以适用到所有的枚举中。
下面是调用代码
调用的截图如下
从图中可以看到description得到了我们在枚举中指定的Description的文本。同时YesNoEnum的枚举实例增加了扩展方法FetchDescription.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.传统枚举类型的缺陷枚举类型是C/C++中用户自定义的构造类型,它是由用户定义的若干枚举常量的集合。枚举值对应整型数值,默认从0开始。比如定义一个描述性别的枚
一、枚举的概念: C#枚举(Enum),枚举类型是用于声明一组命名的常数的基本数据类型(值类型);二、枚举的定义: 声明enum变量:enum{enumer
一、枚举的概念:C#枚举(Enum),枚举类型是用于声明一组命名的常数的基本数据类型(值类型);二、枚举的定义:声明enum变量: enum{enumerati
本文以一个简单实例讲述了C#实现获取枚举中元素个数的方法,对于C#学习来说是需要加以牢固掌握的技巧。分享给大家供大家参考之用。具体如下:实现该功能可以使用枚举基
详解C#编程获取资源文件中图片的方法本文主要介绍C#编程获取资源文件中图片的方法,涉及C#针对项目中资源文件操作的相关技巧,以供借鉴参考。具体内容如下:例子:u