我是靠谱客的博主 超级小白菜,最近开发中收集的这篇文章主要介绍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#如何获取枚举的描述属性详解的全部内容,希望文章能够帮你解决C#如何获取枚举的描述属性详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(101)

评论列表共有 0 条评论

立即
投稿
返回
顶部