博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#给枚举增加一个Attribute,并通过反射获取Attribute的值。(借鉴)
阅读量:5360 次
发布时间:2019-06-15

本文共 1435 字,大约阅读时间需要 4 分钟。

[AttributeUsage(AttributeTargets.Field)]    public class EnumExtension : Attribute    {        private string title;        public EnumExtension(string title)        {            this.title = title;        }        public static string Get(Type tp, string name)        {            MemberInfo[] mi = tp.GetMember(name);            if (mi != null && mi.Length > 0)            {                EnumExtension attr = Attribute.GetCustomAttribute(mi[0], typeof(EnumExtension)) as EnumExtension;                if (attr != null)                {                    return attr.title;                }            }            return null;        }        public static string Get(object enm)        {            if (enm != null)            {                MemberInfo[] mi = enm.GetType().GetMember(enm.ToString());                if (mi != null && mi.Length > 0)                {                    EnumExtension attr = Attribute.GetCustomAttribute(mi[0], typeof(EnumExtension)) as EnumExtension;                    if (attr != null)                    {                        return attr.title;                    }                }            }            return null;        }    }    public enum BorderStyle    {        [EnumExtension("正常")]        None,        [EnumExtension("圆角")]        Rounded    }

 使用以下的方法就能取得枚举的Attribute值:

string name = EnumExtension.Get(BorderStyle.Rounded);

 

转载于:https://www.cnblogs.com/jcdd-4041/p/3347168.html

你可能感兴趣的文章
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
[工具] Sublime Text 使用指南
查看>>
Web服务器的原理
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
HAL层三类函数及其作用
查看>>
web@h,c小总结
查看>>
java编程思想笔记(一)——面向对象导论
查看>>
Data Structure 基本概念
查看>>
Ubuntu改坏sudoers后无法使用sudo的解决办法
查看>>
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>
redux-effect
查看>>
他山之石:加载图片的一个小问题
查看>>
shell - 常识
查看>>
linux下编译复数类型引发的错误:expected unqualified-id before '(' token
查看>>