反射(Reflection)是一个非常强大的工具,可以用来查看和遍历类型和类型成员的元数据;动态创建类型实例,动态调用所创建的实例方法、字段、属性;迟绑定方法和属性。此次要介绍的是使用反射查看类型成员信息——遍历枚举。代码如下:

 private static DataTable GetData()
{
Type t=typeof(Enum); // 创建类型
FieldInfo [] fieldArray=t.GetFields(); //获取字段信息对象集合
DataTable dt=new DataTable();
dt.Columns.Add("Name",Type.GetType("System.String"));
dt.Columns.Add("Value",Type.GetType("System.Int32"));
foreach(FieldInfo field in fieldArray)
{
if(!field.IsSpecialName)
{
DataRow dtRow=dt.NewRow();
dtRow[]=field.Name;
dtRow[]=Convert.ToInt32(field.GetRawConstanValue());
dt.Rows.Add(dtRow);
}
}
18 return dt;
}

  Type类是反射的核心,这个类封装了类型的元数据,是进行反射的入口。当获得了类型的Type对象后,就可以根据Type提供的属性和方法获取这个类型的方法、字段、属性、事件、参数、构造函数等一切信息。

.NET反射简单应用———遍历枚举字段的更多相关文章

  1. 利用注解和反射,将Bean枚举字段的值填入相应的字段中,并转化为fastjson返回前台

    需求:需要将枚举类型的字段例如enable(是否启用)转化为enable:1,enableName:是.这种形式返回给前台. 思路:在bean字段上加上枚举类型的注解,通过字段的值和枚举类反射获取枚举 ...

  2. C# 反射简单介绍

    原文:https://blog.csdn.net/wu1020300665/article/details/82958455 1.什么是反射 反射是.NET中的重要机制,通过反射,可以在运行时获得程序 ...

  3. VM页面中遍历枚举类

    1)自定义的枚举类如下所示: public enum BusType { MID_SMALL(1, "中小件"), FRESH(2, "生鲜"), GLOBAL ...

  4. 2019-8-31-C#-遍历枚举

    title author date CreateTime categories C# 遍历枚举 lindexi 2019-08-31 16:55:58 +0800 2018-03-13 20:42:2 ...

  5. Java里面,反射父类里面数字类型字段,怎么set值

    Java里面,反射父类里面数字类型字段,怎么set值,我的做法是这样: /** * TODO 直接设置对象属性值, 忽略private/protected 修饰符, 也不经过setter * @aut ...

  6. 1.4.2 solr字段类型--(1.4.2.5)使用枚举字段

    1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...

  7. c# 反射得到实体类的字段名称和值,DataTable转List<T>

    /// <summary> /// 反射得到实体类的字段名称和值 /// var dict = GetProperties(model); /// </summary> /// ...

  8. c语言的枚举(遍历枚举)与数据类型总结

    一.枚举的概念 枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数.当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型. 比如,你可以用一个枚举类型的变量来表示季节, ...

  9. C# 遍历枚举(枚举是目的,遍历(获取)是手段)

    C# 遍历枚举   C#中,如何获取(遍历)枚举中所有的值: public enum Suits { Spades, Hearts, Clubs, Diamonds, NumSuits } priva ...

随机推荐

  1. web 分享到facebook

    利用meta 使自己的页面变为一种富媒体文件,利用facebook的 open Graph 比如你的html页面想要以图片的形式被分享 <meta property="og:image ...

  2. Linux服务器 XAMPP后添加PHP和MYSQL环境变量

    编辑/etc/profile文件 在文件末尾添加两行代码 vi /etc/profile CentOS: PATH=$PATH:/opt/lampp/bin export PATH Ubuntu: e ...

  3. 父级POM的表现形式

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  4. python3之platform模块

    platform模块可以获取操作系统的相关信息. >>> platform.system() #获取系统名称 'Linux' >>> platform.archit ...

  5. deno深入揭秘及未来展望

    deno node.js之父Ryan Dahl在一个月前发起了名为deno的项目,项目的初衷是打造一个基于v8引擎的安全的TypeScript运行时,同时实现HTML5的基础API.所谓的安全运行时, ...

  6. opencv学习之路(35)、SURF特征点提取与匹配(三)

    一.简介 二.opencv中的SURF算法接口 三.特征点匹配方法 四.代码 1.特征点提取 #include "opencv2/opencv.hpp" #include < ...

  7. Python day 06

    day06 数据类型(四) 今日内容 集合 内存相关 深浅拷贝 补充 补充 列表 reverse,反转. v1 = [1,2,3111,32,13] print(v1) # [1,2,311,32,1 ...

  8. 不错的anroid源码在线浏览网站【学习笔记】

    不错的anroid源码在线浏览网站:http://androidxref.com/

  9. 【BZOJ5194】Snow Boots

    [原题题面]传送门 [简化题意] 给定一个长度为n的序列. 有m次询问,每次询问给定两个数si,di.你一开始站在0,每次你可以走不超过di,但你到达的位置的数不能超过si.问能否走到n+1. n,m ...

  10. 优雅的使用Linux

    优雅的使用Linux 系统安装 启动盘制作 通过rufus烧制官网镜像,注意根据自己系统的引导模式选择相应模式,不确定的,可以在windows中通过Win + R 快捷键调出"运行" ...