私は、次のクラスとメソッドを持っている:ジェネリッククラスのwhere節内でジェネリッククラスを指定する方法は?
public class MyGenericClass<T>
where T : class
{
}
public class MyClass
{
public TGen MyMethod<TGen>(TGen myGenClass)
where TGen : MyGenericClass<T>
where T : class
{
return myGenClass;
}
}
それはMyMethodはでシンボルT
を解決することはできませんので、しかし、これはエラーになります。私は少し冗長だと思われるので、MyMethod<TGen, T>
を持っている必要はありません。これは可能ですか?
public TGen MyMethod<TGen, T>(TGen myGenClass)
where TGen : MyGenericClass<T>
where T : class
{
return myGenClass;
}
しかし、 'MyMethod'には' T'型のパラメータはありません。私はあなたがしようとしていることを理解していません。 –
私は 'public TGen MyMethod(TGen myGenClass)のようなものを持っています。TGen:MyGenericClass <>' –
cm007
また、私はあなたが 'MyGenericClass <>'で伝えようとしていることを理解していません。なぜMyGenericClassの型パラメータがどのように推測されると思いますか?何に推論? –