首页 新闻 赞助 找找看

什么是反射啊?求大神!!

0
[已解决问题] 解决于 2014-04-18 13:37

(C#)什么是反射求大神解答一下啊!!!!!!!!

草上晨光的主页 草上晨光 | 菜鸟二级 | 园豆:202
提问于:2014-04-15 22:49
< >
分享
最佳答案
0

  建议看一些基本概念和例子:http://en.wikipedia.org/wiki/Reflection_(computer_programming)

      反射是可以在运行时检查类、接口、域和方法的一种手段,使得无需像传统方式那样,在编译时知道类和方法的名字,显式而明确地获取类的属性或执行某个方法。利用反射可以初始化新的对象,触发方法以及取得对象的属性值。

 (1)利用反射可以在运行时通过遍历得知一个类拥有的所有属性和方法,可以获取或执行它们,也可以通过类名构造对象,或通过函数名获取执行该函数。在C#和Java中,还可以通过反射执行private函数。

   (2)反射可以在运行时触发函数这个特点增加了灵活性,举一个简单的例子,用户在前台中通过下拉菜单从几百个数据表名中选择了一个,并选择相应的操作(如查询该表记录总数,假设后台的对象中包含查询函数),那么后台可以根据该表名构建一个对象,然后根据用户的选择函数名触发对应的函数。

奖励园豆:5
adanus | 初学一级 |园豆:144 | 2014-04-16 00:02

谢谢啊!

草上晨光 | 园豆:202 (菜鸟二级) | 2014-04-18 13:40
其他回答(5)
0

反射是指对一个程序集中的元数据进行检查的过程。利用反射,可以将程序集中的所有类型枚举出来,并搜索满足特定条件的那些类型

羽商宫 | 园豆:2490 (老鸟四级) | 2014-04-15 22:59

谢谢啊!

支持(0) 反对(0) 草上晨光 | 园豆:202 (菜鸟二级) | 2014-04-18 13:40
1

首先你定义一个class的时候,实际上就是再告诉编译器,你想要一个什么样子的类.

这个时候你描述了这个类的样子.编译器照着你的描述创建了一个类.

反射就是,在你运行代码的时候,让编译器告诉你指定类的样子,然后你就能对这个类进行操作.因为你可能不知道这个类是什么样子的

吴瑞祥 | 园豆:29449 (高人七级) | 2014-04-16 09:26

谢谢啊!

支持(0) 反对(0) 草上晨光 | 园豆:202 (菜鸟二级) | 2014-04-18 13:40
0

简单的可以这样理解。

正常的程序,你要先指着比尔盖茨(这是一个对象),说,给我编一个DOS(命令)。

Bill.CodingADOS

反射就是,你在编写代码的时候,根本不知道打算用谁来写DOS,名字可以当作一个字符串,

反射代码,拿到字符串“Bill Gates, USA, CitizenID=2ADC3DGAAA0004-003223”,就找到(相当于类似EVAL)

一个比尔盖茨,然后这时候,可以说Bill.ExecuteMethod("Coding a DOS").

差不多是这样的意思,插件式编程或是一些配置式编程时候,比较有用。

爱编程的大叔 | 园豆:30839 (高人七级) | 2014-04-16 10:13
0

最简单的理解, 反射可以让你调用其他DLL(程序集)里的相应的方法

风浪 | 园豆:2996 (老鸟四级) | 2014-04-16 17:32

谢谢啊!

支持(0) 反对(0) 草上晨光 | 园豆:202 (菜鸟二级) | 2014-04-18 13:40
0

反射就是你不知道类型方法属性是怎么定义的情况下,你只需要知道它提供了什么就可以调用的技术

xgdw | 园豆:4 (初学一级) | 2014-04-17 16:30

谢谢

支持(0) 反对(0) 草上晨光 | 园豆:202 (菜鸟二级) | 2014-04-18 13:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册