C# · 12月 22, 2021

c# – 具有常用方法和属性的两个类

参见英文答案 > 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”);}