一般来说,我们给枚举注释这样。

,写个/// <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相关推荐

  1. C# 特性Description的值的获取

    public class dataE{/// <summary>/// 企业名称/// </summary>/// <returns></returns> ...

  2. 一个读取C#特性Description方法(zhuan)

    class Program{static void Main(string[] args){string str= DB.write.ToDescription();Console.WriteLine ...

  3. 第十一节:特性(常见的特性标签、自定义特性、特性的使用案例)

    一. 基本概念 1. 什么是特性? MSDN官方给出的定义时:公共语言运行时允许添加类似关键字的描述声明,叫做特性,它对程序中的元素进行标注,如类型.字段.方法和属性等.Attribute和Micro ...

  4. 玩转控件:封装Dev的LabelControl和TextEdit

    缘由 俗话说的好:"工欲善其事必先利其器",作为软件攻城狮也是同样道理,攻城狮开发的软件目的是简化客户的操作,让客户动动手指就可以完成很多事情,减少人力成本.这也是系统/软件存在的 ...

  5. 第六节:反射(几种写法、好处和弊端、利用反射实现IOC)

    一. 加载dll,读取相关信息 1. 加载程序集的三种方式 调用Assembly类下的三个方法:Load.LoadFile.LoadFrom. 1 //1.1 Load方法:动态默认加载当前路径下的( ...

  6. WPF -- Xceed PropertyGrid应用详解

    目录 1. Nuget安装 2. 调用 3. 常用属性 4. Model层设置 4.1 测试类 4.2  为对象添加相关特性      4.2.1 添加描述特性      4.2.2 添加分组     ...

  7. 将不确定变为确定~Flag特性的枚举是否可以得到Description信息

    回到目录 之前我写过对于普通枚举类型对象,输出Description特性信息的方法,今天主要来说一下,如何实现位域Flags枚举元素的Description信息的方法. 对于一个普通枚举对象,它输出描 ...

  8. 获取枚举值上的Description特性说明

    /// <summary> /// 获取枚举值上的Description特性说明 /// </summary> /// <typeparam name="T&q ...

  9. 【.NET】简单使用Description特性

    在使用处引入包using System.ComponentModel; 在类成员前添加特性,如 public class A{[Description("姓名")]public s ...

最新文章

  1. boost::contract模块实现check宏的测试程序
  2. 如何使用shell脚本快速排序和去重文件数据
  3. 【数据结构与算法】之深入解析“三数之和”的求解思路与算法示例
  4. Yii2 主从 数据库
  5. lombok依赖_为什么有些公司不让用 Lombok ?不要问,自己看吧
  6. 《scikit-learn》决策树之回归树
  7. 接口与抽象类区别和接口jdk8新特性
  8. mysql大项目:新闻管理系统
  9. STM32:ST-LINK下载弹出no target connect
  10. WPF 控件 深度克隆
  11. 分治算法实现经典归并排序java实现
  12. android微信朋友圈背景图片渐变,【图】怎么生成朋友圈背景?微信朋友圈背景图生成器推荐...
  13. 【SCSS】1300- 这些 SCSS 使用技巧真好用~
  14. 两个人同屏玩的象棋_有什么好玩的棋两个人也可以玩,四个人也可以玩,比较益智的...
  15. OO第二单元电梯作业总结
  16. ErrMsg:server is DOWN now, please try again later!
  17. TCP/IP 完成端口
  18. 解决cannot resolve directory问题
  19. 【解决方案】基于国标GB28181协议视频智能分析平台EasyCVR/EasyGBS打造的智慧企业AR云景解决方案
  20. 企业ERP管理系统使用说明

热门文章

  1. 无域控AlwaysOn实战教学 (一)
  2. 计算机硬件intel的商标,电脑硬件配置品牌详细介绍推荐
  3. 【Vue全家桶+SSR+Koa2全栈开发】项目搭建过程 整合 学习目录(持续更新中)
  4. 查找字符串中某个字符出现的次数
  5. HTML5学习之WebSocket通讯(六)
  6. 海龟交易法则12_脚踏实地地测试
  7. 上海居住证积分办理攻略,太容易了,快来收藏!!!
  8. 顾客点餐系统(1)-------整体项目目标+用户数据表的操作
  9. unity pdg 设置隐藏不需要的节点以及实现自动勾选自动加载项
  10. python中可以清空字典并保留变量的是,给定字典d,以下选项中可以清空该字典并保留变量的...