C#关于gettype()获得方法的问题

例如有A,B,C这三个类,他们同时实现了接口ITest的SayHello()方法;
此时在主窗体中通过combox控件获得A,B,C其中一个类的名字,
现在想用typeof方法获得类
var t=  Type.GetType(cbx_CarTestType.SelectedItem.ToString());

那么如何让t显示出接口的实现方法呢。
即t.SayHello()的调用。

 

也就是说,我知道A,B,C三个类肯定有某一个方法,此时不想采用反射来获得这个方法再调用了,而是不管是哪个类,都调用该方法

青春有我
浏览 664回答 10
10回答

叮当猫咪

要调用方法只有两种办法: 1、就是采用反射获取方法,然后调用(显然不是你想要的) 2、创建一个实例来调用 var t=  Type.GetType(cbx_CarTestType.SelectedItem.ToString()); ITest test=(ITest)Activator.CreateInstance(t); test.SayHello();

陪伴而非守候

var 换成 dynamic 反射的方法直接写出来用(自动反射,没有智能提示)

慕田峪4524236

  写代码的时候没报错,编译的时候报错了,麻烦看下

哆啦的时光机

这个错误我解决了,可是在调试的时候,并没有识别出字符串对应的类

宝慕林4294392

@鲁广广: 没有实例化!

PIPIONE

@hahanonym: 具体怎么操作呢,我该实例化哪个呢,目前看来楼下的实例接口的方法是可行的

子衿沉夜

没看明白,你既然都实现了接口,你直接反射拿接口上的方法不就完了么?

三国纷争

我不是说了A,B,C三个类都实现了该接口,所以就不需要用反射再来寻找该方法了。我现在就是要直接让这个t识别这个公共接口方法

12345678_0001

s谁告诉你反射是这样用的.. 你连实例都没有.哪来的接口实现给你调用?

慕妹3242003

海之殇正解
打开App,查看更多内容
随时随地看视频慕课网APP