这个复杂的类层次结构会导致编译错误。我想知道它是否与尝试混合使用泛型的DeepCopy()有关。
public interface IInterface<T>
{
IInterface<T> DeepCopy();
}
public abstract class AbstractClass<T> : IInterface<T>
{
public abstract IInterface<T> DeepCopy(); // Compiler requires me to declare this public
}
// Everything good at this point. There be monsters below
public class ConcreteClass: AbstractClass<SomeOtherClass>
{
ConcreteClass IInterface<SomeOtherClass>.DeepCopy()
{
return new ConcreteClass;
}
}
我收到以下编译器错误:
'IInterface<...>.DeepCopy()': containing type does not implement interface 'IInterface<SomeOtherClass>'
最佳答案
返回布尔
更改ConcreteClass IInterface<SomeOtherClass>.MyMethod()
到bool IInterface<SomeOtherClass>.MyMethod()
编辑:
然后,您不能使用接口的显式实现,因为它不能满足抽象类的约定,因此您需要像这样实现它。
public override IInterface<SomeOtherClass> DeepCopy()
{
return new ConcreteClass();
}