C#特性——Description
一般来说,我们给枚举注释这样。
,写个/// <summary> 加中文注释,然后鼠标悬浮即可看到注释。
但是如何用代码获取到这个注释。
这就用到Description特性,原理不知道,我也刚学,先学会用吧。
先写个枚举
/// <summary>
/// 季节
/// </summary>
public enum Season
{[Description("春天,又称春季,是四季中的第一个季节,指立春至立夏期间,含节气有立春、雨水、惊蛰、春分、清明、谷雨。是万物复苏的季节。")]Spring = 1,[Description("夏天,四季中的第二个季节,英语为summer,又称“昊天”,是北半球一年中最热的季节,我国习惯将立夏作为夏天的开始,气象学上的夏季要推迟到立夏后25天左右")]Summer = 2,[Description("秋天,又称秋季,一年四季的第三季,由夏季到冬季的过渡季,北半球为9至11月,南半球为3至5月,天文为秋分到冬至。")]Autumn = 3,[Description("冬天,又称冬季。北半球一年当中最寒冷的季节,其他的为春、夏、秋。天文学上认为是从12月至2月,中国习惯指立冬到立春的三个月时间,也指农历“十、十一、十二”三个月。")]Winter = 4
}
写个扩展方法。
扩展方法也是一个知识点,回头有时间我写一下。
/// <summary>
/// 枚举拓展工具类
/// </summary>
public static class EnumTools
{/// <summary>/// 获取当前枚举描述/// </summary>/// <param name="enumValue"></param>/// <returns></returns>public static string GetEnumDescription(this Enum enumValue){Type type = enumValue.GetType();MemberInfo[] memInfo = type.GetMember(enumValue.ToString());if (null != memInfo && memInfo.Length > 0){object[] attrs = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);if (null != attrs && attrs.Length > 0)return ((DescriptionAttribute)attrs[0]).Description;}return enumValue.ToString();}
}
unity新建一个脚本,调用获取枚举注释的方法
public class NewBehaviourScript : MonoBehaviour
{void Start(){Season season = Season.Spring;Debug.Log(season.GetEnumDescription());season = Season.Summer;Debug.Log(season.GetEnumDescription());season = Season.Autumn;Debug.Log(season.GetEnumDescription());season = Season.Winter;Debug.Log(season.GetEnumDescription());}private void Update(){}
}
结果显示
现在有个疑问,既然枚举可以用特性,并且代码获取到枚举的注释。 那么变量 方法类也应该可以使用此特性获取到,额回头试试
C#特性——Description相关推荐
- C# 特性Description的值的获取
public class dataE{/// <summary>/// 企业名称/// </summary>/// <returns></returns> ...
- 一个读取C#特性Description方法(zhuan)
class Program{static void Main(string[] args){string str= DB.write.ToDescription();Console.WriteLine ...
- 第十一节:特性(常见的特性标签、自定义特性、特性的使用案例)
一. 基本概念 1. 什么是特性? MSDN官方给出的定义时:公共语言运行时允许添加类似关键字的描述声明,叫做特性,它对程序中的元素进行标注,如类型.字段.方法和属性等.Attribute和Micro ...
- 玩转控件:封装Dev的LabelControl和TextEdit
缘由 俗话说的好:"工欲善其事必先利其器",作为软件攻城狮也是同样道理,攻城狮开发的软件目的是简化客户的操作,让客户动动手指就可以完成很多事情,减少人力成本.这也是系统/软件存在的 ...
- 第六节:反射(几种写法、好处和弊端、利用反射实现IOC)
一. 加载dll,读取相关信息 1. 加载程序集的三种方式 调用Assembly类下的三个方法:Load.LoadFile.LoadFrom. 1 //1.1 Load方法:动态默认加载当前路径下的( ...
- WPF -- Xceed PropertyGrid应用详解
目录 1. Nuget安装 2. 调用 3. 常用属性 4. Model层设置 4.1 测试类 4.2 为对象添加相关特性 4.2.1 添加描述特性 4.2.2 添加分组 ...
- 将不确定变为确定~Flag特性的枚举是否可以得到Description信息
回到目录 之前我写过对于普通枚举类型对象,输出Description特性信息的方法,今天主要来说一下,如何实现位域Flags枚举元素的Description信息的方法. 对于一个普通枚举对象,它输出描 ...
- 获取枚举值上的Description特性说明
/// <summary> /// 获取枚举值上的Description特性说明 /// </summary> /// <typeparam name="T&q ...
- 【.NET】简单使用Description特性
在使用处引入包using System.ComponentModel; 在类成员前添加特性,如 public class A{[Description("姓名")]public s ...
最新文章
- boost::contract模块实现check宏的测试程序
- 如何使用shell脚本快速排序和去重文件数据
- 【数据结构与算法】之深入解析“三数之和”的求解思路与算法示例
- Yii2 主从 数据库
- lombok依赖_为什么有些公司不让用 Lombok ?不要问,自己看吧
- 《scikit-learn》决策树之回归树
- 接口与抽象类区别和接口jdk8新特性
- mysql大项目:新闻管理系统
- STM32:ST-LINK下载弹出no target connect
- WPF 控件 深度克隆
- 分治算法实现经典归并排序java实现
- android微信朋友圈背景图片渐变,【图】怎么生成朋友圈背景?微信朋友圈背景图生成器推荐...
- 【SCSS】1300- 这些 SCSS 使用技巧真好用~
- 两个人同屏玩的象棋_有什么好玩的棋两个人也可以玩,四个人也可以玩,比较益智的...
- OO第二单元电梯作业总结
- ErrMsg:server is DOWN now, please try again later!
- TCP/IP 完成端口
- 解决cannot resolve directory问题
- 【解决方案】基于国标GB28181协议视频智能分析平台EasyCVR/EasyGBS打造的智慧企业AR云景解决方案
- 企业ERP管理系统使用说明
热门文章
- 无域控AlwaysOn实战教学 (一)
- 计算机硬件intel的商标,电脑硬件配置品牌详细介绍推荐
- 【Vue全家桶+SSR+Koa2全栈开发】项目搭建过程 整合 学习目录(持续更新中)
- 查找字符串中某个字符出现的次数
- HTML5学习之WebSocket通讯(六)
- 海龟交易法则12_脚踏实地地测试
- 上海居住证积分办理攻略,太容易了,快来收藏!!!
- 顾客点餐系统(1)-------整体项目目标+用户数据表的操作
- unity pdg 设置隐藏不需要的节点以及实现自动勾选自动加载项
- python中可以清空字典并保留变量的是,给定字典d,以下选项中可以清空该字典并保留变量的...