c# - 具有通用方法和属性的两个类

标签 c# .net class dynamic duck-typing

<分区>

我有两个类(class)。

A 类:

class A() {
    public void QQ() {}
    public void WW() {}
}

和 B 类:

class B() {
    public void QQ() {}
    public void WW() {}
}

它们不共享相同的接口(interface)或抽象类。 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");
}

关于c# - 具有通用方法和属性的两个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34307008/

相关文章:

c++ - 在类中访问 vector

Python:类和子类问题

c# - 在 Mono - Linux 上使用 FileInfo 和 DirectoryInfo 类

c# - 如何防止表单关闭并显示确认对话框?

c# - 为什么 'readonly' 在下面的 Singleton 实现中必不可少?

c# - BuildSiteMap() 方法如何工作?

c# - 缺少程序集引用 Microsoft.IdentityModel.Clients.ActiveDirectory

c# - 根据 Predicate<T> 清理 List<T> 的最可靠方法

c# - 为什么 Main 方法是私有(private)的?

java - Java如何对数据集进行排序