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

 

目录
相关文章
|
IDE Shell 网络安全
Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa
Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa
745 0
Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa
livp图片怎么打开以及怎么转换成jpg格式教程
livp图片怎么打开以及怎么转换成jpg格式教程
|
SQL 索引
在 SQL Server 中使用 STRING_AGG 函数
【8月更文挑战第5天】
3610 2
在 SQL Server 中使用 STRING_AGG 函数
|
网络协议 程序员 网络架构
UDP报文结构详解:一篇文章带你搞懂
**UDP报文格式简述:**包含源端口、目的端口、长度和检验和4个字段,用于传输层无连接通信。IP报文格式关键点:版本、首部长度、服务类型、总长度、标识、TTL和首部检验和,确保数据在网络中的路由与可靠性。了解这些基础对于网络协议学习至关重要。
965 2
|
机器学习/深度学习 数据采集 算法
基于深度学习网络的USB摄像头实时视频采集与火焰检测matlab仿真
本项目使用MATLAB2022a实现基于YOLOv2的火焰检测系统。通过USB摄像头捕捉火焰视频,系统实时识别并标出火焰位置。核心流程包括:视频采集、火焰检测及数据预处理(图像标准化与增强)。YOLOv2模型经特定火焰数据集训练,能快速准确地识别火焰。系统含详细中文注释与操作指南,助力快速上手。
|
存储 人工智能 算法
探索人工智能伦理:技术发展与社会责任的平衡
随着人工智能(AI)技术的飞速进步,其对社会、经济以及人类生活的影响日益加深。本文将探讨AI技术发展中的伦理问题,分析数据隐私、算法偏见和自动化失业等关键议题。通过引用最新的科研研究和统计数据,文章旨在揭示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的问题
1509 0
Gitlab - 安装的社区版 Gitlab-ce,解决访问网页报502-Whoops, GitLab is taking too much time to respond的问题
|
Java Maven
idea的Maven依赖问题
idea的Maven依赖问题
|
Java 数据格式 JSON
Java根据两点经纬度计算距离
这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作“赤道”。
|
JavaScript 前端开发
什么是原型链?
什么是原型链?
453 0