c# - C#中的接口(interface)多态性

标签 c# .net 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; }
    // ......
}

这段代码给出了一个编译错误,因为 INode.Parent 没有实现。但是,我不需要重复的父属性。
我该如何解决这个问题?

最佳答案

我认为您正在寻找这样的东西:

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; }
}

关于c# - C#中的接口(interface)多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19207362/

相关文章:

c# - LINQ 与方法表达式的差异

c# - 哪些选项是发布 asp.net 网站项目的最佳性能方式 - 部署

.net - 你能给我一些关于 .NET 和 TLS 1.2 的一般性建议吗

c# - 具有泛型的多态性-奇怪的行为

c++ - 多态性:如何访问派生类成员函数?

任务计划程序库的 C# 问题

c# - 自动从 ListView 子项构建数组

c# - 通过使用 "object"文件并稍后合并来加快 C# 编译速度?

c# - await/async 与线程有何不同?

c++ - 增加破坏速度