次のクラスとインターフェースがあるとします。
public class Test<T>
{
}
public interface ITesting<T>
{
Test<T> LoadTest();
}
次のクラスを追加できます。
public class TestManager : ITesting<object>
{
#region ITesting
public Test<object> LoadTest()
{
return new Test<object>();
}
#endregion
}
これは正常に機能し、エラーはスローされません。そのクラスを次のものに置き換えようとすると:
public class TestDerived : Test<object>
{
}
public class TestDerivedManager : ITesting<object>
{
#region ITesting
public TestDerived LoadTest()
{
return new TestDerived();
}
#endregion
}
次のエラーが表示されます。
エラー 'TestDerivedManager' はインターフェイス メンバー 'ITesting.LoadTest()' を実装していません。'TestDerivedManager.LoadTest()' は 'ITesting.LoadTest()' を実装できません。一致する戻り値の型 'Test' がないからです。
しかし、私にはこれがそのまま機能するように思えTestDerived
ますTest<object>
。私は明らかにここで何かを正しく理解していません。なぜこれが間違っているのか、誰かが私に詳細を教えてもらえますか? そして、おそらくそれを修正するために私は何ができるでしょうか?