您现在所在的位置:首页 >学习资源 > Unity游戏/VR/AR入门教材 > VR开发入门教程31:控制台编程--反射

VR开发入门教程31:控制台编程--反射

来源:奇酷教育 发表于:

反射的概念反射机制是使程序具有动态特性的非常关键的一种机制。反射的作用:1、根据指定的类名,类字段名和所对应的数据,得到该类的实例

反射的概念
反射机制是使程序具有动态特性的非常关键的一种机制。
反射的作用:
1、根据指定的类名,类字段名和所对应的数据,得到该类的实例。
2、根据指定的装箱对象 获取其属性值或者调用其方法
3、获取未来会产生的程序集 并使用其中的类
 
总结一下就是让我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods1。
反射需要用到的类
反射用到的命名空间:
   System.Reflection
   System.Type
   System.Reflection.Assembly
 
    (1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。    
   (2)使用Type这个类可以访问任何给定数据类型的信息。
    (3)使用ConstructorInfo 了解构造函数的名称、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。
    (4)使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。
    (5)使用FiedInfo了解字段的名称、访问修饰符(如public或private)和实现详细信息(如static)等,并获取或设置字段值。
   (6)使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值。
 
System.Type类:
   System.Type 类对于反射起着核心的作用。但它是一个抽象的基类,Type有与每种数据类型对应的派生类,我们使用这个派生类的对象的方法、字段、属性来查找有关该类型的所有信息。
   获取给定类型的Type引用有3种常用方式:
   ●使用 C# typeof 运算符。已知类型
       Type t = typeof(string);
   ●使用对象GetType()方法。 已知对象
       string s = "grayworm";
       Type t = s.GetType();
   ●还可以调用Type类的静态方法GetType()。已知类名
       Type t = Type.GetType("System.String");