错误:'项目'没有实现接口成员&IUCable.Use(Character)'

时间:2016-04-10 02:18:05

标签: c#

我一直在类定义中遇到错误。我不知道如何解决这个问题,有没有人有任何建议?

我认为此问题可能会在我的代码中导致更多错误。 错误消息是:

  

'项目'没有实现接口成员&IUCable.Use(Character)'

abstract class Item : IUsable
{
    public string strEffect;
    public int intEffect = 20;
    public string description;

    public Item ()
    {
        strEffect = "poison";
        intEffect = -10;
        description = "The character will continuously lose 10 health until healed.";
    }

    public string StrEffect
    {
        get { return strEffect; }
        set { strEffect = value; }
    }

    public int IntEffect
    {
        get { return intEffect; }
        set { intEffect = value; }
    }

    public string Description
    {
        get { return description; }
        set { description = value; }
    }

    abstract public void Use();
}

3 个答案:

答案 0 :(得分:0)

正如错误消息所示,您需要一个函数Use()接受一个由Char接口

定义的IUsable参数
public virtual void Use(Char c) ;

由于Item是一个抽象类,因此可以在没有body的情况下定义此Use方法。任何非抽象派生类都必须使用方法实现覆盖它。

答案 1 :(得分:0)

由于您继承自IUsable接口,因此您将被要求在定义时实现其包含的属性和成员。

虽然您在类中定义了Use()方法,但它并不接受参数,并且错误消息明确指出它应该接受一个字符(即Use(Character)),如下所示:

public virtual void Use(Character character);

答案 2 :(得分:0)

您需要实现位于界面中的确切函数(具有相同数量的输入参数)

所以在你的情况下,接口有一个方法如下:

<强>接口

interface IUsable
{
    // interface other members and the one this error is about
    public virtual void Use(Char c);
}

抽象类

abstract class Item: IUsable
{
   public abstract void Use(Char c);
}

您还需要在抽象类中实现它。 你可以刷一些basics here