0

このエラーメッセージは正確には何について不平を言っているのですか?

値を保持し、他のノードを指すことができるノード クラスを作成しようとしています。また、各ノード内により多くの情報を埋め込むために拡張することもできます。ただし、再帰的なテンプレートにはいくつかの問題があります。

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;
}

'Node`2[N,T]' の GenericArguments[1]、'T' は、型パラメーター 'T' の制約に違反しています。

4

1 に答える 1

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
{
}

Nodeクラスが含まれていたcsプロジェクトではなく、テストcsプロジェクトにスローされたエラーメッセージがスローされたことに気付きました。ただし、エラーに関連付けられた行またはファイルはありませんでした。ただし、テスト プロジェクトをソリューションから除外すると、ソリューションは正常にビルドされました。

なぜそうなったのかはわかりませんが、最終的に、テストプロジェクトの自動生成されたフォルダー「Test References」を除外しようとしました。このフォルダーには、DataStructures.accessor ファイルが含まれていました。ファイルを除外すると、問題が解決したようです。

于 2013-09-01T04:39:37.827 に答える