参见英文答案 >
What is Interface Duck Typing?4个
我有两节课.
我有两节课.
A类:
class A() { public void QQ() {} public void WW() {} }
和B类:
class B() { public void QQ() {} public void WW() {} }
它们不共享相同的接口或抽象类.
A和B有两个截然不同的层次,我现在无法改变它.
我想写一个适用于A和B并使用QQ和WW方法的程序.
我能这样做吗?你能建议我可以学习的任何文件吗?
坦克
解决方法
这称为
Duck Typing.
你可以使用动力学
void Foo(dynamic dy) { dy.QQ(); }
你也可以使用反射. (reference)
public static void CallQQ(object o) { var qq = o.GetType().GetMethod("QQ"); if (qq != null) qq.Invoke(o,new object[] { }); else throw new InvalidOperationException("method not found"); }