为什么这个不起作用有些出乎意料?
这是编译器的限制,还是不支持它是有道理的?
public class Class1<T> : IInterface
where T : Test2
{
public T Test { get; private set; }
}
public class Test2
{
}
internal interface IInterface
{
Test2 Test { get; }
}
我遇到的错误是:
'ClassLibrary1.Class1<T>' does not implement interface member 'ClassLibrary1.IInterface.Test'.
'ClassLibrary1.Class1<T>.Test' cannot implement 'ClassLibrary1.IInterface.Test' because it does not have the matching return type of 'ClassLibrary1.Test2'.
Class1
需要是泛型的?如果Test
的返回类型是Test2
,那么将其返回此类型即可。这样你就可以返回任何派生自Test2
的类型了。 - Lou