C#中的接口多态性

Ste*_*ero 3 .net c# polymorphism

我有这样的代码:

public interface INode
{
    INode Parent { get; set; }
    // ......
}

public interface ISpecificNode : INode
{
    new ISpecificNode Parent { get; set; }
    // ......
}

public class SpecificNode : ISpecificNode
{
    ISpecificNode Parent { get; set; }
    // ......
}
Run Code Online (Sandbox Code Playgroud)

此代码提供编译错误,因为未实现INode.Parent.但是,我不需要重复的父属性.
我该如何解决这个问题?

Ale*_*ria 10

我想你正在寻找这样的东西:

public interface INode<T> where T : INode<T>
{
    T Parent { get; set; }
}

public interface ISpecificNode : INode<ISpecificNode>
{
}

public class SpecificNode : ISpecificNode
{
    public ISpecificNode Parent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)