如何实现节点类的接口

问题描述 投票:0回答:1

但循环依赖性误差发生 我试图了解如何以另一种方式实施它,但我不知道...

所以我唯一的解决方案是
public interface INode<T, N> where N : class
{
    T Value { get; set; }
    N Left { get; set; }
    N Right { get; set; }
}
public class Node<T> : INode<T>
{
    T Value { get; set; }
    Node<T> Left { get; set; }
    Node<T> Right { get; set; }
}

这是一个很好的做法,还是解决这些循环依赖性问题的哪些方法也适用? 我需要您的建议如何更好地实现此界面,否则没有任何接口(但我想这样做)会更好

这里没有循环依赖性。您的代码应该可以正常工作。这不是C ++,这确实是循环依赖性(除非节点元素是指示符)。唯一有点丑陋的是,您通常只有一个接口仅返回接口,而不是具体类,因此您将拥有

public interface INode<T> { T Value { get; set; } INode<T> Left { get; set; } INode<T> Right { get; set; } }
要现在满足接口(并且仍然能够访问类类型),但是您现在必须明确实现该接口:

public class Node<T> : INode<T> { T Value { get; set; } INode<T> INode<T>.Left => Left; INode<T> INode<T>.Right => Right; Node<T> Left { get; set; } Node<T> Right { get; set; } }

c# oop inheritance interface solid
1个回答
0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.