这条错误消息到底在抱怨什么?
我正在尝试创建一个节点类,它可以保存一个值并指向其他节点,并且可以扩展为在每个节点中嵌入更多信息。递归模板给了我一些问题。
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','Node`2 [N,T]'违反了类型参数'T'的约束。
答案 0 :(得分:0)
我设法得到一个简单的重复案例:
public class Node<T> : Node<Node<T>, T>
where T : IComparable
{
}
abstract public class Node<N, T>
where N : Node<N, T>, new()
where T : IComparable
{
}
我注意到,抛出的错误消息是在我的test cs项目中,而不是Node类所在的cs项目。但是,没有与错误关联的行或文件。如果我从解决方案中排除了我的测试项目,那么解决方案就会成功构建。
我不知道为什么会这样,但我终于尝试排除测试项目自动生成的文件夹“Test References”,其中包含一个DataStructures.accessor文件。排除该文件似乎解决了这个问题。