由於對英文的天生缺陷,在枚舉時一直使用中文,這樣就不用看註釋就知道枚舉意思,今天看到博文
使用特性代替了直接使用中文作為屬性。刻意摘抄部分為以後使用方便


/// <summary>/// 枚举帮助类/// </summary>public static class EnumTools {/// <summary>/// 获取当前枚举值的描述和排序/// </summary>/// <param>/// <returns>返回元组Tuple(string,int)</returns>public static Tuple<string> GetDescription(this Enum value) {int order = 0;string description = string.Empty; Type type = value.GetType();// 获取枚举FieldInfo fieldInfo = type.GetField(value.ToString());// 获取枚举自定义的特性DescriptionAttributeobject[] attrs = fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false); DescriptionAttribute attr = (DescriptionAttribute)attrs.FirstOrDefault(a => a is DescriptionAttribute); description = fieldInfo.Name;if (attr != null) { order = attr.Order; description = attr.Name; }return new Tuple<string>(description,order); }/// <summary>/// 获取当前枚举的所有描述/// </summary>/// <returns></returns>public static List<keyvaluepair>> GetAll<t>() {return GetAll(typeof(T)); }/// <summary>/// 获取所有的枚举描述和值/// </summary>/// <param>/// <returns></returns>public static List<keyvaluepair>> GetAll(Type type) { List<enumtoolsmodel> list = new List<enumtoolsmodel>();// 循环枚举获取所有的Fieldsforeach (var field in type.GetFields()) {// 如果是枚举类型if (field.FieldType.IsEnum) {object tmp = field.GetValue(null); Enum enumValue = (Enum)tmp;int intValue = Convert.ToInt32(enumValue);var dec = enumValue.GetDescription();int order= dec.Item2;string showName = dec.Item1; // 获取描述和排序list.Add(new EnumToolsModel { Key = intValue, Name = showName, Order = order }); } }// 排序并转成KeyValue返回return list.OrderBy(i => i.Order).Select(i => new KeyValuePair<int>(i.Key, i.Name)).ToList(); }/// <summary>/// 枚举Model/// </summary> partial class EnumToolsModel {public int Order { get; set; }public string Name { get; set; }public int Key { get; set; } } }/// <summary>/// 枚举特性/// </summary>[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)]public class DescriptionAttribute : Attribute {/// <summary>/// 排序/// </summary>public int Order { get; set; }/// <summary>/// 名称/// </summary>public string Name { get; set; }/// <summary>/// 定义描述名称/// </summary>/// <param>名称public DescriptionAttribute(string name) { Name = name; }/// <summary>/// 定义描述名称和排序/// </summary>/// <param>名称/// <param>排序public DescriptionAttribute(string name, int order) { Name = name; Order = order; } }</int></enumtoolsmodel></enumtoolsmodel></keyvaluepair></t></keyvaluepair></string></string>
把原文中的out參數替換成回傳元組,由於專案是vs2015開發,不能用c#7.0特性,否則用7.0中的值元組應該更好一點。性能和顯示友好性都會有改進。
以上是Enum擴充特性實例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python2.x中如何使用enum模块定义枚举类型引言:枚举是一种数据类型,它将变量的取值限定在一个有限的范围内,使用枚举类型可以使代码更加清晰和可读。在Python2.x中,我们可以使用enum模块来定义枚举类型。本文将介绍如何使用enum模块来定义和使用枚举类型,并给出相应的代码示例。导入enum模块在使用enum模块之前,首先需要导入该模块。在

有些朋友可能会在安装系统时不小心设置成了英文,结果所有界面都变成了英文,看都看不懂。其实我们可以在控制面板中设置语言,将语言更改为中文,下面就一起来看一下更改的方法吧。win7如何更改语言为中文1、首先点击屏幕左下角的按钮,然后选择“ControlPanel”2、找到“Clock,Language,andRegion”下的“Changedispalylanguage”3、点击下方“English”就可以在下拉菜单中选择简体中文了。4、确定之后点击“Logoffnow”注销并重启电脑。5、回来之后

有时候我们再刚刚入手安装好电脑系统之后发现系统时英文的,遇到这种情况我们就需要把电脑的语言改成中文,那么win10系统里面该怎么把电脑的语言改成中文呢,现在就给大家带来具体的操作方法。win10电脑语言怎么改成中文1、打开电脑点击左下角的开始按键。2、点击左侧的设置选项。3、打开的页面选择“时间和语言”4、打开后,再点击左侧的“语言”5、在这里就可以设置你要的电脑语言。

Win11系统语言如何改成中文?近期有用户刚给电脑安装了最新的Win11系统,但是在使用中发现系统语言为英文,自己使用起来很吃力,为此有没有什么方法可以将系统语言改成中文呢?方法很简单,下面我们来看看这篇Win11系统语言设置为中文的方法吧。 Win11系统语言设置为中文的步骤 1、首先我们进入齿轮按钮的settings,然后找到其中的Time打开时间和语言。 2、在时间和语言中点击左边栏的Language选项,然后在右侧点击Addalanguage。 3、接着在上方搜索框输入chi

2月23日消息,官方威世智今日宣布,自《摩登新篇3》之后将不再生产葡萄牙语版产品,自《Bloomburrow》开始停止生产中文版实体卡牌产品。完整公告如下:万智牌实体卡牌产品语言调整通知万智牌作为一款全球知名游戏,一直深受全球玩家的喜爱。今年,我们遗憾地做出这个艰难的决定:在《摩登新篇3》之后将不再生产葡萄牙语版产品,自《Bloomburrow》开始停止生产中文版实体卡牌产品。我们深知这对热爱万智牌的中国和葡萄牙玩家是一次重大的变化,但这一决策并不是对玩家热情的否定。请大家相信,我们将继续在这两

eclipse语言设置为中文的方法:1、打开浏览器找到语言包下载地址,并将最新的安装包地址复制;2、打开eclipse,点击“help”,然后点击安装新的插件;3、点击“Add”,在Location中粘帖网址;4、在下拉菜单中找到简体中文包,进行勾选,点击Next等待安装;5、重启eclipse即可。

解决matplotlib中文乱码问题的方法,需要具体代码示例Matplotlib是一个常用的用于数据可视化的Python库,可以生成各种图表和图形。然而,对于中文用户来说,经常会遇到一个问题,就是生成的图表中的中文字符显示乱码。这个问题可以通过一些简单的方法来解决。本文将介绍一些常见的解决方法,并附上相关的代码示例,帮助读者解决这个烦人的问题。方法一:设置字

在matplotlib中正确地显示中文字符,是很多中文用户常常遇到的问题。默认情况下,matplotlib使用的是英文字体,无法正确显示中文字符。为了解决这个问题,我们需要设置正确的中文字体,并将其应用到matplotlib中。下面是一些具体的代码示例,帮助你正确地在matplotlib中显示中文字符。首先,我们需要导入需要的库:importmatplot


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版