这个复杂的类层次结构会导致编译错误。我想知道它是否与尝试混合使用泛型的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();
}

09-19 02:07