C# 获取枚举类型中所有描述信息

本文介绍如何使用 C# 获取枚举类型中的所有属性描述信息,包括使用 FieldInfo 和泛型的方法,并附带了一个具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  今天心情好;回家没什么事干;于是就坐下来写点代码打发无聊的时间;一时也不知道写点什么好呢?于是想到了最近上班经常用的获取枚举类型中的所有属性的描述信息;所以就给自己一个温故而知新的机会。本人作者作为菜鸟军团中的一员。没有多大思想与见解,所以难免发一点没多大意义的文章;希望各位谅解。

  1.应用的命名空间

  using System.ComponentModel;
  using System.Reflection;

 

  2、定义枚举类

枚举类
 1  public enum BagType
 2     {
 3         [Description("书包1")]
 4         schoolbag1,
 5 
 6         [Description("书包2")]
 7         schoolbag2,
 8 
 9         [Description("书包3")]
10         schoolbag3
11     }

  

  3、获取枚举类所有属性的描述信息

获取描述信息方法 
 1  public void GetEnumDesc<Ttype>(Ttype Enumtype)
 2         {
 3             if (Enumtype == null) throw new ArgumentNullException("Enumtype");
 4             if (!Enumtype.GetType().IsEnum) throw new Exception("参数类型不正确");
 5             
 6             FieldInfo[] fieldinfo = Enumtype.GetType().GetFields();
 7             foreach (FieldInfo item in fieldinfo)
 8             {
 9                 Object[] obj = item.GetCustomAttributes(typeof(DescriptionAttribute), false);
10                 if (obj != null&&obj.Length!=0)
11                 {
12                     DescriptionAttribute des = (DescriptionAttribute)obj[0];
13                     Console.WriteLine(des.Description);
14                 }
15             }
16         }

  

  4、知识总结:

    4.1熟悉FieldInfo的用法和属性(发现字段特性并提供对字段员数据的访问权)

    4.2理解C#泛型的应用

 

  这个方法如果大家在项目当中扩展的好可以起到一定的举足轻重的作用。如果有什么建议的同仁;希望多多指点;感激不尽;您的指点让我又进步了一点。

  

转载于:https://www.cnblogs.com/xybs/archive/2012/07/09/2583836.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值