(C#)什么是反射求大神解答一下啊!!!!!!!!
建议看一些基本概念和例子:http://en.wikipedia.org/wiki/Reflection_(computer_programming)
反射是可以在运行时检查类、接口、域和方法的一种手段,使得无需像传统方式那样,在编译时知道类和方法的名字,显式而明确地获取类的属性或执行某个方法。利用反射可以初始化新的对象,触发方法以及取得对象的属性值。
(1)利用反射可以在运行时通过遍历得知一个类拥有的所有属性和方法,可以获取或执行它们,也可以通过类名构造对象,或通过函数名获取执行该函数。在C#和Java中,还可以通过反射执行private函数。
(2)反射可以在运行时触发函数这个特点增加了灵活性,举一个简单的例子,用户在前台中通过下拉菜单从几百个数据表名中选择了一个,并选择相应的操作(如查询该表记录总数,假设后台的对象中包含查询函数),那么后台可以根据该表名构建一个对象,然后根据用户的选择函数名触发对应的函数。
谢谢啊!
反射是指对一个程序集中的元数据进行检查的过程。利用反射,可以将程序集中的所有类型枚举出来,并搜索满足特定条件的那些类型
谢谢啊!
首先你定义一个class的时候,实际上就是再告诉编译器,你想要一个什么样子的类.
这个时候你描述了这个类的样子.编译器照着你的描述创建了一个类.
反射就是,在你运行代码的时候,让编译器告诉你指定类的样子,然后你就能对这个类进行操作.因为你可能不知道这个类是什么样子的
谢谢啊!
简单的可以这样理解。
正常的程序,你要先指着比尔盖茨(这是一个对象),说,给我编一个DOS(命令)。
Bill.CodingADOS
反射就是,你在编写代码的时候,根本不知道打算用谁来写DOS,名字可以当作一个字符串,
反射代码,拿到字符串“Bill Gates, USA, CitizenID=2ADC3DGAAA0004-003223”,就找到(相当于类似EVAL)
一个比尔盖茨,然后这时候,可以说Bill.ExecuteMethod("Coding a DOS").
差不多是这样的意思,插件式编程或是一些配置式编程时候,比较有用。
最简单的理解, 反射可以让你调用其他DLL(程序集)里的相应的方法
谢谢啊!
反射就是你不知道类型方法属性是怎么定义的情况下,你只需要知道它提供了什么就可以调用的技术
谢谢