Adm*_*ian 6 .net c# duck-typing class dynamic
我有两节课.
A类:
class A() {
public void QQ() {}
public void WW() {}
}
Run Code Online (Sandbox Code Playgroud)
和B类:
class B() {
public void QQ() {}
public void WW() {}
}
Run Code Online (Sandbox Code Playgroud)
它们不共享相同的接口或抽象类.A和B有两个截然不同的层次,我现在无法改变它.
我想写一个适用于A和B并使用QQ和WW方法的程序.
我能这样做吗?你能建议我可以学习的任何文件吗?
坦克
这叫做Duck Typing.
你可以使用动力学
void Foo(dynamic dy)
{
dy.QQ();
}
Run Code Online (Sandbox Code Playgroud)
你也可以使用反射.(参考)
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");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |