我正在制作一个包含多种二叉树类型的程序。因此,我决定创建一个抽象类,以避免复制代码。但是有一个问题,每个树的节点需要包含与节点本身相同类型的子节点。是否可以在抽象类中定义这一点呢?还是说,我最好为每种类型创建不同的类呢?
public abstract class BinaryNodeAbstract<T>
{
public T Value;
public BinaryNodeAbstract<T> Left;
public BinaryNodeAbstract<T> Right;
现在的情况是,节点可以是任何类型的BinaryNode。需要避免这种情况发生。
where T: BinaryNodeAbstract<T>
,但这可能只是一个部分解决方案。 - Dmitry Bychenko