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

c# – 如何在继承中获得特定的基类?

发布时间:2020-12-15 23:39:03 所属栏目:百科 来源:网络整理
导读:我有四节课. 儿子,父亲,GrandFather和GrandGrandFather. 如果在Son类中我写了base关键字,它将到达GrandGrandFather类.但是我如何从Son课程到达GrandFather?继承中使用了哪些关键字? 解决方法 我觉得你看错了.层次结构中的每个实例基本上都是相同的类型(例
我有四节课.

儿子,父亲,GrandFather和GrandGrandFather.

如果在Son类中我写了base关键字,它将到达GrandGrandFather类.但是我如何从Son课程到达GrandFather?继承中使用了哪些关键字?

解决方法

我觉得你看错了.层次结构中的每个实例基本上都是相同的类型(例如Human).你正在寻找一个组合的例子,而不是继承,每个人都会引用其他人类.像这样的东西:

public class Node
{
    public string Name { get; set; }
    /* Other properties */

    public Node Parent { get; set; }
    public Node Child { get; set; }
}

人口示例:

Node son = new Node();
Node father = new Node { Child = son };
Node grandFather = new Node { Child = father };

son.Parent = father;
father.Parent = grandFather;

一般来说,访问层次结构的某些深度

node.Child.Child.Child .....
node.Parent.Parent.parent ....

要跳过几代,您可以编写如下函数:

public Node GetAncestor(int generations)
{
    if (generations == 0)
        return this;
    return Parent?.GetAncestor(generations - 1);
}

//Will retrieve grandFather
var ancesstor = son.GetAncestor(2);

(编辑:李大同)

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

    推荐文章
      热点阅读