【发布时间】:2013-08-31 04:34:49
【问题描述】:
这个错误消息到底在抱怨什么?
我正在尝试创建一个节点类,它可以保存一个值并指向其他节点,并且可以扩展为在每个节点中嵌入更多信息。递归模板给了我一些问题。
public class ColoredNode<T> : Node<ColoredNode<T>, T>
where T : IComparable
{
public ConsoleColor Color;
}
public class BaseNode<T> : Node<BaseNode<T>, T>
where T : IComparable
{
}
abstract public class Node<N, T>
where N : Node<N, T>, new()
where T : IComparable
{
public N Parent;
public N Child;
public T Value;
}
GenericArguments[1], 'T', on 'Node`2[N,T]' 违反了类型参数 'T' 的约束。
【问题讨论】:
-
我实际上看不出这段代码有什么问题。错误在这里抱怨什么吗?还是当您在代码的不同部分实例化它时?
-
如果你透露你的
BinaryNode类定义,你可能会得到帮助。 -
@TimothyShields 我将所有内容从 BinaryNode 重命名为 Node 以使问题更简单。所有代码都存在。
标签: c# templates generics recursive-datastructures