积极答复者
声明了MethodInfo类的对象是否就执行了其中的显示接口MethodInfoInvoke 呢?

问题
-
声明了MethodInfo类的对象是否就执行了其中的显示接口MethodInfoInvoke 呢?
MethodInfo类: 发现方法的属性并提供对方法元数据的访问。
如果声明了MethodInfo类System.Reflection.MethodInfo method = type.GetMethod(方法名); 是否执行了它的显示接口MethodInfoInvoke 呢?
看到一篇关于委托的文章写到 控件id.Invoke(new MethodInvoker(delegate(){...}));而MethodInvoker方法是执行了委托的线程,我用的VS08中没有MethodInvoker方法,但看到MethodInfo有一个接口MethodInfoInvoke,貌似执行了上面提到的委托。不知道我理解的对不对?
请高手帮忙解答一下。谢谢!
煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com
答案
-
你理解错了。
MethodInfo.Invoke 是使用指定的参数调用当前实例表示的方法或构造函数,这是反射框架的一部分。
MethodInvoker 提供一个简单委托,该委托用于调用含 void 参数列表的方法。 Invoke 方法进行调用时或需要一个简单委托又不想自己定义时可以使用该委托。
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.methodinvoker(v=vs.80).aspx
从 .Net 2.0 开始就有 MethodInvoker 了。- 已编辑 Skyseer 2014年1月3日 9:50
- 已标记为答案 CaillenModerator 2014年1月15日 3:02
-
MethodInfo类是GetMethod之后的结果类型。Invoke是其中一个方法,用于动态(反射)调用方法,该Invoke方法需要一个委托,比较匹配的是MethodInvoker。其实你完全可以自定义一个委托进行调用。
比如你完全可以这样用:
class Program { private delegate void MyDelegate(); ……………… control.Invoke(new MyDelegate(你自己的方法)); ………………………… }
ASP.NET Questions
Other Discussions
FreeRice Donate
Issues to report
Free Tech Books Search- 已编辑 ThankfulHeartModerator 2014年1月6日 1:47
- 已标记为答案 CaillenModerator 2014年1月15日 3:02
全部回复
-
你理解错了。
MethodInfo.Invoke 是使用指定的参数调用当前实例表示的方法或构造函数,这是反射框架的一部分。
MethodInvoker 提供一个简单委托,该委托用于调用含 void 参数列表的方法。 Invoke 方法进行调用时或需要一个简单委托又不想自己定义时可以使用该委托。
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.methodinvoker(v=vs.80).aspx
从 .Net 2.0 开始就有 MethodInvoker 了。- 已编辑 Skyseer 2014年1月3日 9:50
- 已标记为答案 CaillenModerator 2014年1月15日 3:02
-
MethodInfo类是GetMethod之后的结果类型。Invoke是其中一个方法,用于动态(反射)调用方法,该Invoke方法需要一个委托,比较匹配的是MethodInvoker。其实你完全可以自定义一个委托进行调用。
比如你完全可以这样用:
class Program { private delegate void MyDelegate(); ……………… control.Invoke(new MyDelegate(你自己的方法)); ………………………… }
ASP.NET Questions
Other Discussions
FreeRice Donate
Issues to report
Free Tech Books Search- 已编辑 ThankfulHeartModerator 2014年1月6日 1:47
- 已标记为答案 CaillenModerator 2014年1月15日 3:02