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");
}

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...