下载此文档

什么是反射、反射可以做些什么.doc


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
—————————————————————————————————————————————————————什么是反射、反射可以做些什么什么是反射,反射能干嘛? 反射是: 指程序可以访问、检测和修改它本身状态或行为的一种能力反射是一种能力,所以给的定义就是说明了它能干嘛。我们平时用反射主要做: 获取类型的相关信息动态调用方法动态构造对象从程序集中获得类型。获取类型的相关信息反射的核心 Type 类, Type 对象提供的属性和方法可以获取对象的一切信息,如:方法、字段、属性、事件…等等。我们获取已加载程序集中类型的 Type 对象的几种方法:(以 StringBuilder 类型为例) 直接使用 typeof 操作符 Type T1= typeof(StringBuilder); 通过类型实例 Type T2= new StringBuilder().GetType(); 通过 Type 类的静态方法 Type T3= ( “ ”); 不管使用那种,我们最终得到的结果都是一样的。那么我们通过 Type 又能得到些什么信息呢? 获取类型本身信息( 命名空间名、全名、是否是抽象、是否是类、、、等等) 获取类型成员信息(通过 Tyep 中的方法 GetMembers —————————————————————————————————————————————————————) MemberType 所能包含的成员类型有哪些呢?如: (可以自己可以 F12 进去看看) 注意: 其中 MemberInfo 的属性 DeclaringType 返回的是这个属性定义的类型, 而 ReflectedType 返回的是获取这个属性的对象类型。如: T2中的 Equals , 我们知道这个方式是在 Obje c 中定义的,在 TClass 中调用的,所以:我们发现获取 Type 对象的成员大多都是以 isxxx 、 Getxxx 、 Getxxxs 格式的。 isxxx 格式的基本上都是判断是否是某类型。 Getxxx 和 Getxxxs 都是放回某类型和某类型集合。其中主要的类型有: 它们都在 命名空间下,其每个 isxxx 、 Getxxx 、 Getxxxs 的细节实例用法就不一一演示了。和上面的 GetMembers 用法区别不大。动态调用方法首先定义个类: 调用方式一(使用 InvokeMember 调用方法) 调用带参实例方法 fun 调用无参实例方法 fun2 —————————————————————————————————————————————————————调用静态方法我们发现了一个问题当我们调用实例方法的时候需要传实例对象过去。(有人会说,都实例对象了,我还要你动态掉调用个屁啊。有种情况, 在我们实例了对象后, 仍不确定应该调用那个方法时可以只有使用。然后有人有说了, 那如果实例对象我也不确定呢?那我们下面会分析连实例对象也给动态了。那接着完下看吧。) 我们来说下这几个参数的意思吧。第一个:要被动态调用的方法名。第二个:是一个枚举,表示是调用一个方法第三个:是 Binder ,传的是 null ,使用默认值。第四个:传如实例对象(调用实例方法时)或者 Typ

什么是反射、反射可以做些什么 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wo1230
  • 文件大小17 KB
  • 时间2017-04-25