• C#枚举


    C#获取枚举描述

    首先创建如下枚举信息,并使用DescriptionAttribute类增加描述特性。

    /// <summary>
    /// 状态编码枚举
    /// </summary>
    public enum StatusCode
    {
        /// <summary>
        /// 操作成功
        /// </summary>
        [Description("操作成功")]
        Success = 200,
     
        /// <summary>
        /// 参数缺失
        /// </summary>
        [Description("参数缺失")]
        MissingParam = 201,
     
        /// <summary>
        /// 操作失败
        /// </summary>
        [Description("操作失败")]
        Failure = 202
    }
    
    方法一:编写获取枚举描述方法
    /// <summary>  
    /// 获取枚举描述
    /// </summary>  
    /// <param name="en">枚举</param>  
    /// <returns>返回枚举的描述 </returns>  
    public static string GetDescription(Enum en)
    {
        Type type = en.GetType();   //获取类型  
        MemberInfo[] memberInfos = type.GetMember(en.ToString());   //获取成员  
        if (memberInfos != null && memberInfos.Length > 0)
        {
            DescriptionAttribute[] attrs = memberInfos[0].GetCustomAttributes(typeof(DescriptionAttribute), false) as DescriptionAttribute[];   //获取描述特性  
            if (attrs != null && attrs.Length > 0)
            {
                return attrs[0].Description;    //返回当前描述
            }
        }
        return en.ToString();
    }
    

    调用方式:

    string description = GetDescription(StatusCode.Success);
    
    方法二:通过枚举扩展类
    
    using System;
    using System.ComponentModel;
    using System.Reflection;
     
    /// <summary>
    /// 枚举扩展类
    /// </summary>
    public static class EnumExtension
    {
        /// <summary>
        /// 获取枚举的描述信息
        /// </summary>
        public static string GetDescription(this Enum em)
        {
            Type type = em.GetType();
            FieldInfo fd = type.GetField(em.ToString());
            if (fd == null)
                return string.Empty;
            object[] attrs = fd.GetCustomAttributes(typeof(DescriptionAttribute), false);
            string name = string.Empty;
            foreach (DescriptionAttribute attr in attrs)
            {
                name = attr.Description;
            }
            return name;
        }
    }
    

    调用方式:

    string description = StatusCode.Success.GetDescription();
    
  • 相关阅读:
    Android的数据存储
    Servlet第一天
    JavaScript高级程序设计读书笔记(3)
    Interesting Papers on Face Recognition
    Researchers Study Ear Biometrics
    IIS 发生意外错误 0x8ffe2740
    Father of fractal geometry, Benoit Mandelbrot has passed away
    Computer vision scientist David Mumford wins National Medal of Science
    Pattern Recognition Review Papers
    盒模型bug的解决方法
  • 原文地址:https://www.cnblogs.com/newcapecjmc/p/12737901.html
Copyright © 2020-2023  润新知