第一次接触反射机制,不是很理解PropertyInfo、FieldInfo和MemberInfo的区别

现在做一个实验,和大家分享下实验结果

首先定义测试类

public class ttt
{public int test = 6;private int privateTest = 5;public string pubStr = "ceshi";public string pubSetStr { get; set; } = "ceshi2";
}

接下来获取该类的Type,以及PropertyInfo、FieldInfo和MemberInfo,代码如下:

Type tt = typeof(ttt);
//var obj = gameObject.AddComponent(tt) ; //继承mono需要addcomponent创建
//var obj2 = Activator.CreateInstance(tt);//普通类创建
TypeInfo tf = tt.GetTypeInfo();
MemberInfo[] ml = tt.GetMembers();
PropertyInfo[] pl = tt.GetProperties();
FieldInfo[] fl = tt.GetFields();

接下来查看每个列表内的数据:

MemberInfo数组:

PropertyInfo数组:

FieldInfo数组:

总结(个人理解,有错误的话欢迎指出):

PropertyInfo 仅限于带有get,set 的成员变量,称为属性

FieldInfo  public的成员变量,并且不是property

MemberInfo 首先是FieldInfo和PropertyInfo的集合,另外包含了该Type所包含的函数。

共同点是private的 成员变量都没有出现

随便贴个MethodInfo的图:

C#反射:PropertyInfo、FieldInfo和MemberInfo的区别相关推荐

  1. 反射PropertyInfo.GetValue()取值抛出需使用DBNull的异常

    帮朋友改代码,在一个DataTable转换.csv的公共类中碰到这个问题. 借鉴这里的问答:这里的问答:反射PropertyInfo.GetValue(对象)抛出DBNull异常 - VoidCC 朋 ...

  2. C#中反射和动态关键字有什么区别?

    目录 介绍 什么是反射以及我们为什么需要它? 我们如何实现反射? 第1步 第2步 反射的实际用途是什么? Dynamic关键字的用途是什么? Dynamic关键字的实际用途是什么? 反射和Dynami ...

  3. java 反射getmethod_Java 反射机制中 getMethod()和getDeclaredField()区别

    今天在程序中用到java反射机制时,遇到的问题记录一下:我当时遇到的问题是,我用反射getMethod()调用类方法时,发生 NoSuchMethodException异常,后来上网发现getMeth ...

  4. java class.getmethod_java反射之Class.getMethod与getDeclaredMethods()区别

    Class对象的getMethods和getDeclaredMethods都是获取类对象的方法.但是又有所不同.废话不多说, 先看demo packagecom.westward;public cla ...

  5. C#秘密武器之反射——基础篇

    先来一段有用的反射代码 namespace Calculator { public interface Iwel { String Print(); } } namespace Calculator ...

  6. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

  7. C#学习-程序集和反射

    准备项目 1.新建一个空的解决方案MyProj.sln 2.在该解决方案下,建一个控制台项目P01.csproj 3.在该项目下,自己新建一个类MyFirstClass.cs 查看解决方案MyProj ...

  8. 为什么 .NET 的反射这么慢?

    大家都知道 .NET 的反射很慢,但是为什么会出现这种情况呢?这篇文章会带你寻找这个问题的真正原因. CLR 类型系统的设计目标 原因之一是,在设计的时候反射本身就不是以高性能为目标的,可以参考Typ ...

  9. Java反射机制Reflection

    Java反射机制 1 .class文件 2 Class类 3 Class类与反射机制 4 Java反射机制的类库支持及简介 5 反射机制的定义与应用 6 反射机制Demo Java反射机制demo(一 ...

最新文章

  1. redis怎么不让存byte_redis用bitfield存储的问题
  2. CentOS Linux 7 安全基线设置
  3. 使用 /proc 文件系统来访问 Linux 内核的内容
  4. pd16.5生成mysql列说明_PowerDesigner16逆向工程生成PDM列注释(My Sql5.0模版)
  5. 网络设备中的交换机(Switch)是什么?—Vecloud微云
  6. c 一般处理程序 ajax,Ajax调用一般处理程序数据
  7. ubuntu16.04 nginx安装
  8. thinkpad笔记本散热风扇_极致的散热体验,ORICO 全铝DIY双风扇笔记本散热垫评测...
  9. 国家开放大学2021春1032成本管理题目
  10. 人是什么垃圾?AI识别功能用到垃圾分类上时 网友试了试“扫自己”
  11. 图论--有向图强连通分量的标记及缩点模板
  12. 2021年,某云盘最新版不限速下载工具教程,亲测有效!
  13. 房产中介管理系统的开发(附源码)
  14. android 全屏时钟,手机全屏数字时钟软件
  15. 微信红包,企业付款到零钱报错:此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置 的原因
  16. 浅谈老妈的QQ号被盗之后
  17. Logstash mutate 插件
  18. 走近国内同人游戏开发者 一探游戏开发的喜与悲
  19. 君澜2021第一季度新开业酒店数量居世界酒店集团排名第六
  20. Macbook Pro(无法完全)通过序列号与激活时间辨别是否为翻新机

热门文章

  1. vue-cropper裁切图片并且上传
  2. python名片系统管理源代码_python实现名片管理系统项目
  3. rpm命令手册和查看rpm安装包的安装路径的方法
  4. 4种DNS安全协议对比:DNSSEC,DNSCrypt,DNS over TLS,DNS over HTTPS
  5. 基于52单片机的简易感应开关垃圾桶
  6. 计算机b级和c级哪个更好,指纹锁B级锁芯和C级锁芯有什么区别
  7. 基于51单片机和四位数码管的智能计算器算法
  8. tessafe.sys不兼容驱动程序怎么解决?
  9. 购物车模块实现(类比京东和天猫)
  10. android7.0及以上版本签名校验过程详解