c#怎样给枚举类型增加一个描述特性

  介绍

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

<强>前言

相信很多人对枚举并不陌生,枚举可以很方便和直观的管理一组特定值。如果我们在页面上直接输出我们希望匹配的汉语意思或则其他满足我们需求的语句就更好了,当然,通常小伙伴们都会再页面上如果(enum==1)“我是一个枚举”或者开关(枚举)这种方式解决。

<强>枚举的优点:

& lt; 1祝辞枚举可以使代码更易于维护,有助于确保给变量指定合法的,期望的值。

& lt; 2祝辞枚举使代码更清晰,允许用描述性的名称表示整数值,而不是用含义模糊的数来表示。

& lt; 3祝辞枚举使代码更易于键入。在给枚举类型的实例赋值时,VS。净IDE会通过智能感知弹出一个包含可接受值的列表框,减少了按键次数,并能够让我们回忆起可能的值

那今天我们就来介绍一种更优雅的解决方法

<强>开整

先定义一个枚举类

 enum  StatusEnum
  ,{
  (才能描述(“修改“))
  Update 才能=,1,
  (才能描述(“新增“))
  时间=Insert 才能;2,
  (才能描述(“删除“))
  时间=Delete 才能;3
  以前,} 

描述是属性特性的意思。记住即可

大家要记住,所有的特性类必须继承自属性,所以,我们自定义一个特性类

///, & lt; summary>   ,///备注特性   ,///& lt;/summary>   ,public  class  RemarkAttribute :属性   ,{///才能,& lt; summary>///才能,备注///才能,& lt;/summary>   public 才能string  Remark {组,得到,,,}      public 才能;RemarkAttribute (string 备注)   {才能   ,,this.Remark =,备注;   ,,}   以前,}

有了这个特性类之后呢,我们还需要一个枚举扩展类

,///, & lt; summary>   ,///枚举扩展类   ,///& lt;/summary>   ,public  static  class  EnumExtension   ,{///才能,& lt; summary>///,才能获取枚举的备注信息///才能,& lt;/summary>///才能,& lt; param  name=癳m"祝辞& lt;/param>///才能,& lt; returns> & lt;/returns>   public 才能static  string  GetRemark(却;能够Enum 价值)   {才能   ,,FieldInfo  fi =, value.GetType () .GetField (value.ToString ());   ,,if  (fi ==, null)   ,,{   ,,,return  value.ToString ();   ,,}   ,,对象[],attributes =, fi.GetCustomAttributes (typeof (RemarkAttribute),假);   ,,if  (attributes.Length 祝辞,0)   ,,{   ,,,return  ((RemarkAttribute)属性[0]).Remark;   ,,}   其他的,,   ,,{   ,,,return  value.ToString ();   ,,}   ,,}      public 才能static  string  GetEnumDescription(却;能够Enum 价值)   {才能   ,,FieldInfo  fi =, value.GetType () .GetField (value.ToString ());   ,,DescriptionAttribute [], attributes =, (DescriptionAttribute []) fi.GetCustomAttributes (typeof (DescriptionAttribute),假);   ,,if  (attributes.Length 祝辞,0)   ,,{   ,,,return 属性[0].Description;   ,,}   其他的,,   ,,{   ,,,return  value.ToString ();   ,,}   ,,}   以前,}

需要引入命名空间:

using  System.Collections.Generic;   using  System.ComponentModel;

有了这个枚举扩展类,我们就可以直接使用了

, Console.WriteLine ((int) StatusEnum.Insert);//输出原有枚举值   ,Console.WriteLine (StatusEnum.Insert.GetRemark());//获取枚举备注信息   ,Console.WriteLine (StatusEnum.Insert.GetEnumDescription());//获取枚举特性值

 C #怎样给枚举类型增加一个描述特性”>,</p> <p>调试过程<br/> </p> <p> <img src=

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

c#怎样给枚举类型增加一个描述特性