首页 新闻 会员 周边

winform如何反射show()方法

0
悬赏园豆:20 [已解决问题] 解决于 2017-12-14 10:22

例如 var a=Assembly.Load....;

获取到a之后 ,然后用

 a.GetType().BaseType.GetMethod("Show");

提示:发现不明确的匹配。

 

注:直接把a转成form可以实现,我只是想知道不转然后后去show的方法

鲁广广的主页 鲁广广 | 初学一级 | 园豆:8
提问于:2017-12-14 09:39
< >
分享
最佳答案
1

你a到底是什么?如果本来就是Form的话为什么要GetType#BaseType?这样拿到的是Control的Show(无参方法)

收获园豆:20
Daniel Cai | 专家六级 |园豆:10424 | 2017-12-14 09:59

a  现在不确定,可能是普通类,或者是继承了Form的类,所以我想尝试获得show方法,结果提示错误

鲁广广 | 园豆:8 (初学一级) | 2017-12-14 10:02

@鲁广广: 你debug下吧,你至少要知道你a是什么吧,不然谁知道你GetMethod后是哪个?

Daniel Cai | 园豆:10424 (专家六级) | 2017-12-14 10:03

@Daniel Cai: 我现在 a 就是获得的 Form窗体,可是就是报错。我用的简单给你看下,这个获得“Close”方法没问题

鲁广广 | 园豆:8 (初学一级) | 2017-12-14 10:08

@鲁广广: 你这里至少要通过GetMethod方法告知你是要Control的Show方法(无参)还是Form上的Show方法(有参)吧。

GetMethod(string,Type[])

Daniel Cai | 园豆:10424 (专家六级) | 2017-12-14 10:11

@Daniel Cai: 懂了,一语道破了,原来有重载函数,我需要指定到底是那个Show方法,非常感谢

鲁广广 | 园豆:8 (初学一级) | 2017-12-14 10:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册