开发者社区> 天伟> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

C# 给枚举类型增加一个备注特性

简介: /// /// 备注特性 /// public class RemarkAttribute : Attribute { /// /// 备注 /// public st...
+关注继续查看
    /// <summary>
    /// 备注特性
    /// </summary>
    public class RemarkAttribute : Attribute
    {
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        public RemarkAttribute(string remark)
        {
            this.Remark = remark;
        }
    }
    /// <summary>
    /// 枚举扩展类
    /// </summary>
    public static class EnumExtension
    {
        /// <summary>
        /// 获取枚举的备注信息
        /// </summary>
        /// <param name="em"></param>
        /// <returns></returns>
        public static string GetRemark(this Enum value)
        {
            FieldInfo fi = value.GetType().GetField(value.ToString());
            if (fi == null)
            {
                return value.ToString();
            }
            object[] attributes = fi.GetCustomAttributes(typeof(RemarkAttribute), false);
            if (attributes.Length > 0)
            {
                return ((RemarkAttribute)attributes[0]).Remark;
            }
            else
            {
                return value.ToString();
            }
        }

        public static string GetEnumDescription(this Enum value)
        {
            FieldInfo fi = value.GetType().GetField(value.ToString());
            DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
            if (attributes.Length > 0)
            {
                return attributes[0].Description;
            }
            else
            {
                return value.ToString();
            }
        }
    }
            var aaa = UserType.Type1.GetRemark();

            var aab = UserType.Type2.GetEnumDescription();

 

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

相关文章
C#(十)之枚举类型与结构体
枚举类型基本用法;官方给的C#结构体的特点、基本用法。
45 0
ECS一个月使用体验
我在这篇文章中简要总结了自己一个月内使用云服务器的体会,提出了自己的问题和思考,希望自己能有更多的机会体验阿里云服务器.
231 0
阿里云的下一个十年,云计算驱动制造业
正如喻思成所说,“在未来的十年将是互联网的十年,但并不是互联网公司的十年,而是全世界中国所有互联网企业走向互联网的十年,阿里巴巴所做的每件事情都是提供平台。”诚然,用云计算来驱动新制造,就是阿里云眼中制造业的下一个十年。
2478 0
C# 将一个对象转换为指定类型
原文地址:点击打开链接 适用:普通的对象,并且有默认的无参数构造函数 #region 将一个对象转换为指定类型 /// &lt;summary&gt; /// 将一个对象转换为指定类型 /// &lt;/summary&gt; /// &lt;param name="obj"&gt;待转换的对象&lt;/param&gt;
2994 0
ios中的枚举类型 ios6+
在iOS6和Mac OS 10.8以后Apple引入了两个宏来重新定义这两个枚举类型,实际上是将enum定义和typedef合二为一,并且采用不同的宏来从代码角度来区分。
815 0
泛型类型的协变(covariant)和逆变
官网:http://msdn.microsoft.com/zh-cn/library/dd799517.aspx 原文链接:http://book.51cto.com/art/201112/308570.htm  参考链接:http://www.cnblogs.com/yukaizhao/archive/2011/10/27/xiebian-nibian.html   1.3.4  泛型类型的协变(covariant)和逆变(contravariant) 在.NET 4.0之前的版本中,泛型类型是不支持协变和逆变的,但是委托类型的参数是支持协变和逆变的。
667 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());   
833 0
+关注
天伟
一个普通程序员
274
文章
198
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载