私はwebとstackoverflowを検索し、CS0311エラーを扱う多くの記事を見つけました。シナリオのどれも私に近いものではありません。私はジェネリッククラスから継承するジェネリッククラスを持っています。ジェネリックエラーCS0311を解決するには?
BusinessBase
がCSLA
枠組み
私は何をしないのです内のクラスであることに注意してください?
public interface Itest
{
int Digit();
}
class BB : Itest
{
public int Digit()
{
return 20;
}
}
class Test<T> : BusinessBase<T>, Itest where T : Test<T>, Itest
{
public int Digit()
{
return 30;
}
}
Test<Itest> test = new Test<Itest>(); //error CS0311
エラーCS0311タイプ
'MyTestApp.Itest'
は、ジェネリック型またはメソッド'A<T>'
で型パラメータ'T'
として使用することはできません。'MyTestApp.Itest'
から'MyTestApp.A<MyTestApp.Itest>'
への暗黙的な参照変換はありません。 MyTestApp
where句に 'Test 'ビットは必要ありません。 'T:Itest'を試してください。 –
ジェネリックで[タイプをタイプパラメータ 'T'として使用することはできませんタイプまたはメソッド - なぜ?](http://stackoverflow.com/questions/24529746/type-cannot-be-used-as-type-parameter-t-in-the-generic-type-or-method-why) – devRicher
は 'Test 'は' Itest'ですが、 'Itest'は' Test 'ではありません。 'Itest'は' BB'かもしれません) –