文章目录

  • 问题
  • 反射获得的多余字段

问题

  • 问题是这样的,我要在枚举类型上面加上ShowName的特性,这样就可以在编辑器里面显示友好的文本,而不是枚举的英文名称

//该接口可以获得该枚举类型的所有值, 也是属于该UnitType类型的
Enum.GetValues(typeof(UnitType))
//该接口获得的是定义时的名称,例如None,Hero,Summoned
var names = Enum.GetNames(typeof(UnitType))
//在System.Reflection命名空间下面有GetCustomAttribute<T>()
Type curType = typeof(UnitType)
var showNames = (from n in nameslet field = curType.GetField(n)let showName = field.GetCustomAttribute<ShowNameAttribute>()select showName.?Name??n).ToArray()

反射获得的多余字段

  • 因为枚举类型的本质是上面这样的,所以通过反射获取所有字段的时候会有一个value类型
foreach(var field in typeof(UnitType).GetType().GetFields())
{}

所以通过static|public对字段进行筛选也是可以的,这个链接就是这种做法

C# 通过反射获取枚举类型相关推荐

  1. Java笔记-通过反射获取枚举类型中所有数据

    程序运行截图如下: 代码如下: Em.java package cn.it1995;public enum Em {ONE(1, "第一个枚举"),TWO(2, "第二个 ...

  2. 获取枚举类型的 中文 描述 和值

    C# 通过Attitude特性来实现,相对方便些 namespace Extensions {/// <summary>/// 定义枚举扩展类/// </summary>pub ...

  3. .net工具类 获取枚举类型的描述

    一般情况我们会用枚举类型来存储一些状态信息,而这些信息有时候需要在前端展示,所以需要展示中文注释描述. 为了方便获取这些信息,就封装了一个枚举扩展类. /// <summary>/// 枚 ...

  4. 获取枚举类型的名字字符串的方法

    C++版 总之就是查表法了. 代码例子如下. #include <stdio.h> typedef enum { SUN, MON, TUE, WED, THU, FRI, SAT, } ...

  5. java获取枚举的值_JAVA枚举Enum,通过枚举值获取枚举类型

    枚举类: import java.util.Optional; public enum PurchaseDemandEnum { YJJSL(1,"研究技术类"), XTGCL(2 ...

  6. java反射 获取参数类型_Java反射带参构造创建对象时如何自动转换参数类型

    需求是这样的:有一个类,类的路径知道,例如是com.xx.xx.xx其中有不同类型的成员变量(个数未知),有对应的setter和getter方法,有一个无参构造和一个全参构造.现在需要用反射机制... ...

  7. C# 获取枚举类型描述Description值

    代码 /// <summary>/// 获取当前枚举描述/// </summary>/// <param name="enumValue">&l ...

  8. Java-使用反射获取类型信息

    2019独角兽企业重金招聘Python工程师标准>>> 一个简单类的例子 在这个类中,有普通的String类型,有数组类型,有带泛型的List类型,有嵌套List类型,以及有多个泛型 ...

  9. Java并发:五种线程安全类型、线程安全的实现、枚举类型

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/u014454538/ article/details/98515807 1. Java中的线程安全 Java线程安全:狭义地认 ...

  10. 【Java】反射、枚举、Lambda表达式

    一.反射 1 定义 2 用途(了解) 3 反射基本信息 4 反射相关的类(重要) 4.1 Class类(反射机制的起源 ) 4.1.1 Class类中的相关方法(方法的使用方法在后边的示例当中) 4. ...

最新文章

  1. 剑指offer:面试题27. 二叉树的镜像
  2. mysql语句生成工具_强烈推荐一款MySQL语句优化辅助工具,值得收藏
  3. HTTP Host 头攻击,是什么鬼?
  4. 初学者必备的数组相关知识点
  5. ARM64的启动过程之(五):UEFI
  6. String定义字符串,实际操作
  7. ccf json解析 java,【求助】e4a json解析 求助大佬帮忙老看下怎么取?
  8. Android Flash分区大小查看
  9. 第四章信息系统安全基础考试要点及真题分布
  10. 【Python3网络爬虫开发实战】1.5.2-PyMongo的安装
  11. Web渗/透/攻/击实战(1)—成功渗/透台湾某净化设备公司官网
  12. 模版 ----- DP
  13. html5盒子层级设置,解决CSS中子元素z-index与父元素兄弟节点的层级问题
  14. Ubuntu18.04安装BeyondCompare
  15. 定时任务 Wpf.Quartz.Demo.3
  16. 如何设置GridView的列宽
  17. 一款安全性测试工具Appscan
  18. 二极管 三极管 mos管
  19. 老路《用得上的商学课》学习开篇(自序)
  20. 40个超有趣的Linux命令行彩蛋和游戏

热门文章

  1. Flutter 《从0到1构建大前端应用》-所有知识点架构
  2. Dart基础第7篇:函数的定义 可选参数 默认参数 命名参数
  3. linux中的轮询机制select/poll/epoll特点分析
  4. Java50道经典习题-程序7 处理字符串
  5. wireshark使用方法总结
  6. Java 常用对象-System类
  7. 洛谷——P1507 NASA的食物计划
  8. Windows8 10设置程序为 系统默认浏览器
  9. [转]Arrays.sort()你应该知道的事
  10. anroid adt离线下载地址(可自己选最新版本使用迅雷下载)