我一直在类定义中遇到错误。我不知道如何解决这个问题,有没有人有任何建议?
我认为此问题可能会在我的代码中导致更多错误。 错误消息是:
'项目'没有实现接口成员&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();
}
答案 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。