学习记录-反射相关
一些基本概念 关于Type类
object类中的getType方法
3中方法来获取type 1.参数名.getType() 2.typeof(类名) 3.Type.getType("类名") 注意:第三种方法里传入的类名需要包含其命名空间 Type是一个类,这些方法可以看作在实例对应的type对象
如果这几种获得type方法的目标对象都是同一个类,或结构体,那么所得到的type对象指向的是都是同一个
得到程序集信息,不知道有什么用
获得指定类中的所有【公共】成员 需要引入命名空间System.Reflection
获取公共构造函数
getConstructor传入Type数组,无参时数组长度为0 执行构造函数使用invoke括号内传入object数组,无参时传null invoke方法的返回值是object类型,使用as方法转换为对应类后,可以完成对该类对象的实例化
因为getConstructor方法传入的参数是type数组,数组中内容应为type对象,故传入的数组内容为 typeof(int)之类的type对象
获取指定类的公共成员【变量】 同时,这里给定了方法去得到指定名称的公共成员变量 对象.getField(string)返回值是FieldInfo类型
通过FieldInfo中提供方法GetValue来获得其中变量的值 (just 获得)
通过SetValue(类对象,值)来修改类对象中的目标变量值 (图中的infoJ在上方已经说明了操作的是test对象中的j变量)
获取其它类中的公共成员方法并执行 此方法中进行操作方法的invoke对象第一个参数是说明哪一个对象要执行这个方法 -图片内容来自【唐老狮】