C#怎样获取枚举的描述属性-创新互联

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

目前成都创新互联已为上1000+的企业提供了网站建设、域名、虚拟空间、网站托管维护、企业网站设计、铁锋网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

前言

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

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

public enum EnumSex
{
  /// 
  /// 男
  /// 
  [Description("男")]
  Male = 0,
  /// 
  /// 女
  /// 
  [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#怎样获取枚举的描述属性”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:C#怎样获取枚举的描述属性-创新互联
当前路径:http://azwzsj.com/article/ddcgoi.html