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();

 

目录
相关文章
|
弹性计算 Ubuntu Linux
幻兽帕鲁服务器清档教程
介绍了Linux(ubuntu)和Windows平台下清除服务器存档的教程。适用于计算巢部署和已有ECS部署。
6712 0
|
4月前
|
人工智能 运维 机器人
PicoClaw:GitHub一周暴涨12K星! 中国团队开源的PicoClaw
PicoClaw是中国团队开源的超轻量AI助手,用Go重构OpenClaw,内存仅&lt;10MB,可在9.9美元RISC-V开发板运行。支持任务规划、网络搜索、多平台机器人等完整能力,95%代码由AI生成,开创“AI自举”新范式。
973 1
|
6月前
|
Prometheus 监控 Java
Java 17 异步多线程视频上传实战
本文基于Java 17实现了企业级的异步多线程视频上传方案,核心是自定义IO密集型线程池 + CompletableFuture异步编程 + 分片上传优化,并扩展了阿里云OSS集成、进度回调、断点续传、分布式锁、日志监控等关键特性。
489 2
|
机器学习/深度学习 算法 安全
基于深度学习的目标检测的介绍(Introduction to object detection with deep learning)
基于深度学习的目标检测的介绍(Introduction to object detection with deep learning)
585 0
|
存储 人工智能 Cloud Native
【云故事探索】NO.13:全链路「长」在阿里云上!极氪汽车全速打造智能出行好体验
本文探讨了极氪汽车从创立到快速发展的背后,数字化体系对其成功的支撑作用。极氪通过与阿里云合作,利用云计算、PaaS服务及AI大模型等技术,实现了敏捷高效的用户体验和业务迭代。文章还分析了极氪在车联网安全、数据处理以及智能化座舱方面的技术突破,并指出全栈上云已成为智能电动车企业的必然选择,助力其在全球化与智能化趋势中脱颖而出。极氪的成功不仅源于产品定位,更得益于其对先进技术的深度应用。
|
Linux 开发工具
Gitlab - 安装的社区版 Gitlab-ce,解决访问网页报502-Whoops, GitLab is taking too much time to respond的问题
Gitlab - 安装的社区版 Gitlab-ce,解决访问网页报502-Whoops, GitLab is taking too much time to respond的问题
1649 0
Gitlab - 安装的社区版 Gitlab-ce,解决访问网页报502-Whoops, GitLab is taking too much time to respond的问题
常用工具类-StringUtils
StringUtils 是 Apache Commons Lang 库中的一个非常有用的工具类,它提供了许多操作 String 的静态方法。
|
机器学习/深度学习 自然语言处理 算法
词性标注(Part-of-Speech Tagging)
词性标注(Part-of-Speech Tagging)
784 3
|
算法
时间(空间)复杂度(结构篇)
时间(空间)复杂度(结构篇)
479 6
|
机器学习/深度学习 数据采集 算法
基于深度学习网络的USB摄像头实时视频采集与火焰检测matlab仿真
本项目使用MATLAB2022a实现基于YOLOv2的火焰检测系统。通过USB摄像头捕捉火焰视频,系统实时识别并标出火焰位置。核心流程包括:视频采集、火焰检测及数据预处理(图像标准化与增强)。YOLOv2模型经特定火焰数据集训练,能快速准确地识别火焰。系统含详细中文注释与操作指南,助力快速上手。