精华内容
下载资源
问答
  • 通过枚举类型的value或者name获取description
    千次阅读
    2016-12-16 14:40:54

    首先 设置一个枚举类型

       public enum TimeOfDay
            {
                [Description("上午")]
                Morning = 1,
                [Description("中午")]
                Afternoon = 2,
                [Description("晚上")]
                Evening = 3,
            };


    1,2,3 为对于的value

    morning afternoon evening为name

      public enum TimeOfDay
            {
                [Description("上午")]
                Morning,
                [Description("中午")]
                Afternoon,
                [Description("晚上")]
                Evening,
            };

    //此时从0开始  ,每次递增+1.可以通过Morning=1来更改枚举初始值。

    注意 使用description需要引用  using System.ComponentModel;


    typeof(TimeOfDay).GetEnumName(Value);  可以通过value 获取到name

    typeof(TimeOfDay).GetField(name);可以通过name获取到对应的枚举信息

    fieldinfo.GetCustomAttribute(typeof(DescriptionAttribute), false);用于指定成员的指定类型的自定义特性(false为不检查其上级)以得到description



    以下为示例代码:

     public enum TimeOfDay
            {
                [Description("上午")]
                Moning = 1,
                [Description("中午")]
                Afternoon = 2,
                [Description("晚上")]
                Evening = 3,
            };
    
    
    
    
    
    
    
            /// <summary>
            /// 得到enum的属性值
            /// </summary>
            /// <returns></returns>
            public static void GetDescriptionByValue(int EnumValue)
            {
    
                string name = typeof(TimeOfDay).GetEnumName(EnumValue);
                FieldInfo fieldinfo = typeof(TimeOfDay).GetField(name);
                Object obj = fieldinfo.GetCustomAttribute(typeof(DescriptionAttribute), false);
                DescriptionAttribute ds = (DescriptionAttribute)obj;
                
                Console.WriteLine(ds.Description);
                Console.ReadLine();
    
    
              
    
            }

    运行:

     public static void Main()
            {
                GetDescriptionByValue(1);
            }
    

    注意引用:

    using System;
    using System.ComponentModel;
    using System.Reflection;

    得到结果:上午








    更多相关内容
  • 主要介绍了js获取页面description的方法,涉及javascript操作页面元素的相关技巧,需要的朋友可以参考下
  • /// 从枚举中获取Description /// 说明: /// 单元测试-->通过 /// /// 需要获取枚举描述的枚举 /// 描述内容 public static string GetDescription(this Enum enumName) { string _description = string....
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Reflection;
    
    namespace CSharpUtilHelpV2
    {
      /// <summary>
      /// 基于.NET 2.0的枚举工具类
      /// </summary>
      public static class EnumToolV2
      {
        /// <summary>
        /// 从枚举中获取Description
        /// 说明:
        /// 单元测试-->通过
        /// </summary>
        /// <param name="enumName">需要获取枚举描述的枚举</param>
        /// <returns>描述内容</returns>
        public static string GetDescription(this Enum enumName)
        {
          string _description = string.Empty;
          FieldInfo _fieldInfo = enumName.GetType().GetField(enumName.ToString());
          DescriptionAttribute[] _attributes = _fieldInfo.GetDescriptAttr();
          if (_attributes != null && _attributes.Length > 0)
            _description = _attributes[0].Description;
          else
            _description = enumName.ToString();
          return _description;
        }
        /// <summary>
        /// 获取字段Description
        /// </summary>
        /// <param name="fieldInfo">FieldInfo</param>
        /// <returns>DescriptionAttribute[] </returns>
        public static DescriptionAttribute[] GetDescriptAttr(this FieldInfo fieldInfo)
        {
          if (fieldInfo != null)
          {
            return (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
          }
          return null;
        }
        /// <summary>
        /// 根据Description获取枚举
        /// 说明:
        /// 单元测试-->通过
        /// </summary>
        /// <typeparam name="T">枚举类型</typeparam>
        /// <param name="description">枚举描述</param>
        /// <returns>枚举</returns>
        public static T GetEnumName<T>(string description)
        {
          Type _type = typeof(T);
          foreach (FieldInfo field in _type.GetFields())
          {
            DescriptionAttribute[] _curDesc = field.GetDescriptAttr();
            if (_curDesc != null && _curDesc.Length > 0)
            {
              if (_curDesc[0].Description == description)
                return (T)field.GetValue(null);
            }
            else
            {
              if (field.Name == description)
                return (T)field.GetValue(null);
            }
          }
          throw new ArgumentException(string.Format("{0} 未能找到对应的枚举.", description), "Description");
        }
        /// <summary>
        /// 将枚举转换为ArrayList
        /// 说明:
        /// 若不是枚举类型,则返回NULL
        /// 单元测试-->通过
        /// </summary>
        /// <param name="type">枚举类型</param>
        /// <returns>ArrayList</returns>
        public static ArrayList ToArrayList(this Type type)
        {
          if (type.IsEnum)
          {
            ArrayList _array = new ArrayList();
            Array _enumValues = Enum.GetValues(type);
            foreach (Enum value in _enumValues)
            {
              _array.Add(new KeyValuePair<Enum, string>(value, GetDescription(value)));
            }
            return _array;
          }
          return null;
        }
      }
    }
    单元测试代码:
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    namespace CSharpUtilHelpV2.Test
    {
      public enum TestEnum
      {
        [System.ComponentModel.Description("第一")]
        One,
        [System.ComponentModel.Description("第二")]
        Two,
        [System.ComponentModel.Description("第三")]
        Three,
        [System.ComponentModel.Description("第五")]
        Five,
        [System.ComponentModel.Description("全部")]
        All
      }
      [TestClass()]
      public class EnumToolV2Test
      {
        [TestMethod()]
        public void GetDescriptionTest()
        {
          string _actual = TestEnum.Five.GetDescription();
          string _expected = "第五";
          Assert.AreEqual(_expected, _actual);
        }
    
        [TestMethod()]
        public void GetEnumNameTest()
        {
          TestEnum _actual = EnumToolV2.GetEnumName<TestEnum>("第五");
          TestEnum _expected = TestEnum.Five;
          Assert.AreEqual<TestEnum>(_expected, _actual);
        }
    
        [TestMethod()]
        public void ToArrayListTest()
        {
          ArrayList _actual = EnumToolV2.ToArrayList(typeof(TestEnum));
          ArrayList _expected = new ArrayList(5);
          _expected.Add(new KeyValuePair<Enum, string>(TestEnum.One, "第一"));
          _expected.Add(new KeyValuePair<Enum, string>(TestEnum.Two, "第二"));
          _expected.Add(new KeyValuePair<Enum, string>(TestEnum.Three, "第三"));
          _expected.Add(new KeyValuePair<Enum, string>(TestEnum.Five, "第五"));
          _expected.Add(new KeyValuePair<Enum, string>(TestEnum.All, "全部"));
          CollectionAssert.AreEqual(_expected, _actual);
    
        }
      }
    }


    展开全文
  • C# 获取枚举类型描述Description

    千次阅读 2019-10-20 18:24:47
    代码 /// <summary> /// 获取当前枚举描述 /// </summary> /// <param name="enumValue"></param> /// <returns></returns> public static stri...

    代码

    /// <summary>
            /// 获取当前枚举描述
            /// </summary>
            /// <param name="enumValue"></param>
            /// <returns></returns>
            public static string GetEnumDescription(this Enum enumValue)
            {
                try
                {
                    Type type = enumValue.GetType();
                    MemberInfo[] memInfo = type.GetMember(enumValue.ToString());
                    if (null != memInfo && memInfo.Length > 0)
                    {
                        object[] attrs = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
                        if (null != attrs && attrs.Length > 0)
                            return ((DescriptionAttribute)attrs[0]).Description;
                    }
                    return enumValue.ToString();
                }
                catch (Exception)
                {
                    return "Unknown";
                }
            }
    

    调用

    class Program
        {
            static void Main(string[] args)
            {
    
                var Moel = new Model() { Name="张三",OrderBy=OrderType.News};
                var res = Moel.OrderBy.GetEnumDescription();
    
                Console.WriteLine(res);
                Console.ReadKey();
            }
    
        }
        public class Model
        {
            public string Name { get; set; }
            public OrderType OrderBy { get; set; }
        }
        /// <summary>
        /// 排序类型,
        /// </summary>
        public enum OrderType
        {
            /// <summary>
            /// 最新排序
            /// </summary>
            [Description("id desc")]
            News,
            /// <summary>
            /// 热门排序
            /// </summary>
            [Description("viewCount desc")]
            Hot,
        }
    

    结果
    在这里插入图片描述

    展开全文
  • C# 获取枚举中的【Description】属性值

    千次阅读 2021-01-05 10:50:50
    //获取描述属性 if (objs == null || objs.Length == 0) //当描述属性没有时,直接返回名称 return value; DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0]; return ...

    这是一个我个人的记录笔记,实际代码也是我从网上找的。

    public enum PayToFreeEnqueteStatus
    {
        [Description("登録済み")]
        Registered = 0,
        [Description("未加入")]
        DisSubscribed = 1
    }
    
    public string GetEnumDescription(Enum enumValue)
    {
      string value = enumValue.ToString();
      FieldInfo field = enumValue.GetType().GetField(value);
      object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);  //获取描述属性
      if (objs == null || objs.Length == 0)  //当描述属性没有时,直接返回名称
        return value;
      DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
      return descriptionAttribute.Description;
    }
    
    public static string GetEnumDescription2(Enum enumValue)
    {
    	var field = enumValue.GetType().GetField(enumValue.ToString());
        var objs = field.GetCustomAttribute(typeof(DescriptionAttribute));
        var descriptionAttribute = (DescriptionAttribute)objs;
        return descriptionAttribute.Description;
    }
    
    

    👇就是调用:

    string status = GetEnumDescription(PayToFreeEnqueteStatus.Registered);
    

    同理,我们可以给枚举类型赋上其他类型的属性,比如Obsolete,在GetEnumDescription方法里面将DescriptionAttribute换成ObsoleteAttribute,一样可以取到属性。

    展开全文
  • C# 特性Description的值的获取

    千次阅读 2020-01-20 13:53:15
    public class dataE{ /// <summary> /// 企业名称 /// </summary> /// <returns></returns> [Description("企业名称")] public string Ent...
  • 主要介绍了java实现获取网站的keywords,description的相关资料,需要的朋友可以参考下
  • 获取枚举常量的描述值Description

    千次阅读 2018-03-29 11:03:02
    枚举 1.属于值类型,继承ValueType ...方法:Description是一个特性,继承自Attribute,Attribute中有方法GetCustomAttribute可以获取到特性实例(在这里是获取DescriptionAttribute的实例),Descrip...
  • /// 获取属性描述 /// </summary> /// <param name="t"></param> /// <returns></returns> public static string GetDesc(this PropertyInfo t) { string des = (...
  • html中的head的meta元素中的keywords与description标签如下: <meta name="keywords" content="xxxx" >...xpath获取属性使用@属性名就行了,如 //meta[@name='keywords']/@content //m...
  • uiautomator2 如何提取出description下面的内容 如图所示
  • 获取枚举类型的描述description

    千次阅读 2016-11-17 11:59:35
    [Description("等待用户确认收货")] WaitConfirm = 2, /// /// 订单完成 /// [Description("订单完成")] Complete = 3 } public static class Util { /// /// 根据值得到中文备注 /// /// ...
  • 获取页面的description

    千次阅读 2012-12-22 19:25:06
    var meta = pt.document.getElementsByTagName('meta'); var share_desc = ''; for(i in meta){ if(typeof meta[i].name!="undefined"&&meta[i].name.toLowerCase()=="description"){ share_desc = meta[i].cont
  • /// 从枚举中获取Description /// 说明: /// 单元测试-->通过 /// /// 需要获取枚举描述的枚举 /// 描述内容 public static string GetDescription( this Enum enumName) { string _...
  • C# 获取属性的description总结

    千次阅读 2011-10-09 16:58:00
    现有一个结构体public struct Desc { private byte val1; [Description("一个属性")] public byte des { get { return val1;...}获取Description代码:string str = ""; Desc...
  • 参考:... 思路:通过反射获取枚举类的Field,再用 Field 获取 DescriptionAttribute 属性。反之亦然 // 枚举 public enum enumStudent { [Description("性别")] sex = 0, [Descripti...
  • //获取实体类里面所有的名称、值、DESCRIPTION值 public string getProperties(T t) { string tStr = string.Empty; if (t == null) { return tStr;
  • 主要介绍了.NET获取枚举DescriptionAttribute描述信息性能改进的多种方法 的相关资料,需要的朋友可以参考下
  • c# ENUM 通过Description得到Value

    千次阅读 2016-12-20 16:34:29
    通过枚举类型的value或者name获取description 看。  public static string GetValueByDescription(string Ip)  {  string value = string.Empty;  var AllNames = typeof(TimeOfDay)
  • 通过Java反射获取对象属性名及对应值 import lombok.Data; /** * @author wenhui * @description * @Date 2019/10/13 */ @Data public class Bean { private String userName; private String userId; ...
  • 在用织梦dedecms系统时,用[field:description /]标签调取文章简介时,限制字数的方法有下面3种: 第一种方法: [field:description function='cn_substr(Html2text("@me")."...",80)'/]调用现成的cn_substr()...
  • 有些时候,某个方法的返回值是个枚举类型,...当前段UI获取到登陆方法的返回结果时,就需要告诉用户登录是否成功、什么原因失败的。如果直接使用 ToString() 方式直接返回枚举变量的名称,显然不合适。通常的做法是使
  • public enum ConvertDeliveryCode ... [System.ComponentModel.Description("9980")] 犬山 = 9980,  [System.ComponentModel.Description("9981")] 关原 = 9981,  [System.Compon...
  • public enum UserType { /// <summary> /// 后台管理 /// </summary> [Description("后台管理")] Manager = 1, /// <summary> /// 普通用户 ...
  • cx_Oracle获取表列名

    千次阅读 2018-05-07 19:50:24
    title = [i[0] for i in CURS.description] #将数据写入CSV文件 try:  with open("table_name.csv",'w') as csvfile:  writer = csv.writer(csvfile)  writer.writerow(title)  writer.writerows(data) except:...
  • 1.设置 using System.ComponentModel; ...[Description("开始时间")] public string searchDateBeg { get; set; } [Description("结束时间")] public string searchDateEnd { get; set; } }...
  • android 获取usb 设备信息

    千次阅读 2018-08-20 13:43:31
    1.用户需要获取usb 设备名,来判断是不是我方的打印机  2.代码 public String getProductName(){ byte[] rawDescs = mUsbDeviceConnection.getRawDescriptors(); String manufacturer = "", ...
  •  * @Description 根据属性名 获取值(value)  * @param name  * @param user  * @return  * @throws IllegalAccessException  */  public static Object getFieldValueByName(String name, User user)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 384,049
精华内容 153,619
关键字:

获取description