1
public class GenericBuildService<T, T2> where T : IList<T2>

着信 T2 が INode を実装していることも確認する必要があります。

IListの場所がすでにある場合、それを指定する方法がわかりません。

アップデート:

ここで私の目標が何であるかをさらに明確にしたいだけです。さまざまな理由でこのクラス内のさまざまなメソッドで両方を操作できるようにする必要があるため、IList を要求し、myCustomType の rootNode を要求するには、このサービス クラスが必要です...したがって、これらのインスタンスをこのように送信しようとしますが、明らかにこのクラスの使用法が気に入らないため、クラス定義をまだ正しく構築していません。

Node<FieldDependency> rootNode = new Node<FieldDependency>(_rootNode);
            var builder = new GenericBuildService<IList<FieldDependency>, FieldDependency>(_dependencies, rootNode);

そのため、FieldDependency インスタンスの単なるリストである IList<_dependencies> を送信しようとしており、Node タイプの rootNode も送信しようとしています

ビルドサービスクラスにぴったりのクラス定義を形成しているかどうかはよくわかりませんが、これを修正する方法を知っている人はいますか?

4

2 に答える 2

0

型パラメーターごとに 1 つずつ、複数のwhere制約を指定できます。

public class GenericBuildService<T, T2>
    where T : IList<T2>
    where T2 : INode
{
}
于 2013-03-31T08:08:47.497 に答える