のような一般的なパラメーターをネストすることは可能class MyClass<TG<TM>>{}
ですか?
いくつかの方法を試してみたところ、次のコードが機能しましたが、クラス宣言では 2 つのパラメーターを分離して受け取る必要があります。
class MyClass1<TG, TM>
where TM : MyType
where TG : OtherType<TM> {
public TM DoSomething() {
}
public TG DoSomething2() {
}
}
それが唯一の方法ですか?
編集:
ご覧のとおり、クラス内に 2 つの汎用パラメーター (TM と TG の両方を使用するメンバー) が必要なので、TG は汎用パラメーターであり、型にすることはできません (その場合)。 2 つのパラメーターの 1 つをハードコードすることは、この質問には寄与しません。
さて、上記のサンプルでは、次のように使用できます (そして動作します):
new MyClass<A<B>, B>();
私の場合、2 番目のパラメーターは常に、最初のパラメーターのネストされたパラメーターと同じものを使用します。そこで、2 番目のパラメーターを省略できるかどうかを尋ねたところ、コンパイラーは最初のパラメーターのパラメーターからそれを推測しました。
2 つの別々のパラメーターを持つ代わりに、そのようなことは可能ですか?