开发者社区> mcy247> 正文

枚举技巧~为枚举加Describe属性,输出枚举元素的说明信息

简介:
+关注继续查看

这是枚举公用属性类:

#region 枚举属性扩展类

    /// <summary>

    /// 枚举扩展方法

    /// </summary>

    public static class EnumExtensions

    {

        public static string GetDescription(this Enum obj)

        {

            return GetDescription(obj, false);

        }

        public static string GetDescription(this Enum obj, bool isTop)

        {

            if (obj == null)

            {

                return string.Empty;

            }

            try

            {

                Type _enumType = obj.GetType();

                DescriptionAttribute dna = null;

                if (isTop)

                {

                    dna = (DescriptionAttribute)Attribute.GetCustomAttribute(_enumType, typeof(DescriptionAttribute));

                }

                else

                {

                    FieldInfo fi = _enumType.GetField(Enum.GetName(_enumType, obj));

 

                    dna = (DescriptionAttribute)Attribute.GetCustomAttribute(

 

                       fi, typeof(DescriptionAttribute));

                }

                if (dna != null && string.IsNullOrEmpty(dna.Description) == false)

                    return dna.Description;

            }

            catch

            {

                throw;

            }

            return obj.ToString();

 

        }

 

    }

    #endregion

一个普通的枚举

 public enum OpreateType

    {

        [Description("添加")]

        Add = 0,

        Del = 1,

        Update = 2,

        Import = 3,

    }

输出它指定枚举元素的描述信息

  Console.WriteLine(OpreateType.Add.GetDescription());

 本文转自博客园张占岭(仓储大叔)的博客,原文链接:枚举技巧~为枚举加Describe属性,输出枚举元素的说明信息,如需转载请自行联系原博主。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
判断一个变量是不是在指定的集合 ENUM中
判断一个变量是不是在指定的集合 ENUM中 enum AA ...{ EA=1, EB, EC, ED, EE }; 1     //可以用反射:2public  bool InRect(AA a)3.
571 0
C# 枚举在属性中运用
//默认ZFLText属性值为"Label" [DefaultValue(typeof(DisplayMode), "Label")] public DisplayMode ZFLText  {      get;      set;  }[Serializable]    public...
613 0
在C#中如何读取枚举值的描述属性
在C#中,有时候我们需要读取枚举值的描述属性,也就是说这个枚举值代表了什么意思。比如本文中枚举值 Chinese ,我们希望知道它代表意思的说明(即“中文”)。   有下面的枚举: public enum EnumLanugage...
881 0
C#基础知识回顾--C#遍历enum类型、获取enum项个数
C#遍历enum类型 对于enum类型: 使用foreach遍历enum类型的元素并填充combox        foreach ( HatchStyle hs1 in Enum.GetValues(typeof(HatchStyle))) { comboBox1.
894 0
获取Enum枚举值描述的几法方法
原文:获取Enum枚举值描述的几法方法 1.定义枚举时直接用中文 由于VS对中文支持的很不错,所以很多程序员都采用了此方案. 缺点:1.不适合多语言 2.感觉不太完美,毕竟大部分程序员大部分代码都使用英文 2.利用自定义属性定义枚举值的描述(博客园-大尾巴狼) 缺点:不适合多语言 原文:http://www.cnblogs.com/hilite/archive/2006/03/28/360793.html 枚举定义: [EnumDescription("订单、订单中的产品、产品项的状态。
982 0
一个枚举的例子
package cn.itcast; import java.util.Date; public class EnumTest {  public static void main(String[] args) {   WeekDay weekday1 =  WeekDay.MON;   //System.out.println(weekday1.nextDay());   
852 0
+关注
mcy247
做自己的太阳 无需凭借谁的光
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载