介绍
这篇文章给大家分享的是有关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#怎样给枚举类型增加一个描述特性”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
c#怎样给枚举类型增加一个描述特性