获取方法的相关信息的两种形式
反射是一种允许用户获得类信息的C#功能,Type对象映射它代表的底层对象;
在.Net 中, 一旦获得了Type对象,就可以使用GetMethods()方法获取此类型支持的方法列表;该方法的两种形式:
MethodInfo [] GetMethods()
MethodInfo [] GetMethods(BindingFlags bindingflas) :它的参数带有一些限制 BindingFlags 是一个枚举
枚举成员 [DeclaredOnly,Instance ,Public] 枚举成员的功能使用 在编译器中使用"."符号后自己认真观察 【相信你很快能够理解】
ParameterInfo[] GetParameters() 方法返回一个方法的参数列表
下面用到的类 MyClass ,为了方便阅读,我把它折叠了!
MyClass
</div>
Main:
使用反射调用方法
上面 讨论了怎么获取一个类型所支持的方法,然而为我们获取对方法的调用做了充分的准备!
MethodInfo类中的Invoke() 方法提供了该技能!
它的一种形式: object Invoke(object obj,object [] paramenters)
obj 是一个对象引用,将调用它所指向的对象上的方法,对于static方法,obj必须为null。
所有需要传递给方法的参数都必须在parameters数组中指定。如果方法不需要参数,则paramenters必须为null
基类MethodBase的 Invoke()方法返回被调用方法的返回值
请看下面的事例:
MyClass类Set()方法有所改变:
代码如下:</div>