我用下面的代码创建了一个简单的界面

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DesignPattern_FactoryPattern
{
   interface Shape
    {
       void drawshape();
    }
}


然后,我用下面的代码创建了另一个类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DesignPattern_FactoryPattern
{
    class Square : Shape
    {
        public override void drawshape()
        {
            Console.WriteLine("Shape is Square");
        }
    }
}


我收到以下错误:


  找不到适合的方法被覆盖。


请你帮助我好吗?

最佳答案

所以你有了:


名为Shape的接口
一个实现Square接口的名为Shape的类


在这种情况下,您需要删除单词overridedrawShape类中的Square方法是接口中定义的方法的实现。

假设您有一个名为Shape的基类,并且Square类是从Shape继承的。在这种情况下,drawShape方法将在基类中使用override相同名称的方法。

关于c# - 找不到合适的方法可以覆盖,但是有一个方法可以覆盖,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33651394/

10-17 00:02