多态方法调用未编译

本文关键字:编译 调用 方法 多态 | 更新日期: 2023-09-27 18:28:07

我有以下带有两个抽象Segment参数的多态方法调用,但是我有一个与此调用相关的错误

    public static void Connected(Segment s1, Segment s2)
        {
            s1.Connected(s2);
            //further working code
        }

我定义了一些抽象方法

    public abstract bool Connected(derivedSegment0 s);
    public abstract bool Connected(derivedSegment1 s);
    public abstract bool Connected(derivedSegment2 s);
    public abstract bool Connected(derivedSegment3 s);

对于每个派生类,哪个实现了其中的每一个(在本例中总共有16个)

    public override bool Connected(derivedSegment0 s)
    {
        //working code
    }

我不清楚为什么调用没有编译。我有错误CS1502:与"Segment.Connected(derivedSegment1)"匹配的最佳重载方法有一些无效参数。感谢

多态方法调用未编译

您正在尝试执行C#不支持的双重调度
在C#中,所有重载解析(dynamic除外)都完全在编译时完成。

相反,您可以使用访问者模式。