加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:34:11 所属栏目:百科 来源:网络整理
导读:参见英文答案 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有两个截然不同的层次,我现
参见英文答案 > 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");
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读