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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |