ジェネリック インターフェイスに制約する必要があるジェネリック パラメーターTDを受け入れる関数があります。例えば:
public T DefinitionPopulate<T, TD>(IDataReader dr)
where T: class, new()
where TD: IEntityDefinition<T, Guid>, new()
{
T t = new T();
TD td = new TD();
td.DoInterfaceMethod(t, dr);
...
return t;
}
ただし、さまざまな IEntityDefinitions を使用します。
IEntityDefinition<SomeClass, Guid>
IEntityDefinition<SomeClass, int>
IEntityDefinition<SomeClass, double>
...etc...
しかし、私の関数DefinitonPopulate
は 2 番目のジェネリック パラメーターをまったく使用しておらず、それが何であるかは気にしません。しかし、現在および将来のすべての定義を処理する必要があります。DefinitionPopulate
そのため、配置されている IEntityDefinition の 2 番目のジェネリック パラメーターごとに 新しい署名を作成するのに行き詰まっているようです...
質問: 2 番目の型パラメーターが何であるかを気にしないことをコンパイラーに伝える方法はありますか? ワイルドカードみたいなもの?
編集:私がした質問に対する真の答えであるため、私が行った答えを受け入れました。ただし、この回答は優れた解決策を提供し、私が抱えていた根本的な問題を解決するために最終的に使用したものです-必ずチェックしてください!