温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#怎样获取枚举的描述属性

发布时间:2021-02-05 11:45:57 来源:亿速云 阅读:969 作者:小新 栏目:编程语言

这篇文章给大家分享的是有关C#怎样获取枚举的描述属性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

前言

枚举为我看日常开发的可读性提供的非常好的支持,但是有时在使用枚举类型时,我们需要取名称和值,甚至有时候还需要取枚举类型的描述。通过反射,我们能获取到枚举类型的描述属性。

首先我们需要给枚举类型添加描述属性(属性都没有是不可能取到的),[Description]就是描述属性,使用这个属性,我们需要添加 using System.ComponentModel 引用。

public enum EnumSex
{
  /// <summary>
  /// 男
  /// </summary>
  [Description("男")]
  Male = 0,
  /// <summary>
  /// 女
  /// </summary>
  [Description("女")]
  Female = 1
}

接着我们需要写一个获取描述属性的方法,FieldInfo需要添加 using System.Reflection 引用,DescriptionAttribute需要添加 using System.ComponentModel 引用。

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;
}

好了,现在我们可以获取到枚举的描述了。

string sex = GetEnumDescription(EnumSex.Female); //sex = "女"

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

感谢各位的阅读!关于“C#怎样获取枚举的描述属性”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI