gpt4 book ai didi

C# "No suitable method found to override."——但是有一个

转载 作者:IT王子 更新时间:2023-10-29 04:18:33 32 4
gpt4 key购买 nike

我在 C# 中覆盖父类的方法时遇到问题。父类设置如下:

public class Base {
public Base(Game1 game)
{
this.game = game;
}

public virtual void Draw()
{
}
}

...还有子类:

public class Ext : Base {
public Ext(Game1 game) : base(game)
{
}

public override void Draw(SpriteBatch batch)
{
}
}

我知道我过去已经成功地覆盖了一个父方法,而现在我可能忽略了一些非常简单的事情......它是什么?

编辑:那实际上是一个拼写错误:在实际的脚本中,Ext 确实派生自 Base。问题仍然存在。不过,感谢您的快速回答。 :)

最佳答案

您给出的代码(编辑后)编译正常,因此您发布的内容中没有的其他错误。

有些事情要检查,一切都是公开的吗?这包括类和方法。

用不同的参数重载?

您确定 Base 是您认为的类吗? IE。是否存在与它实际引用的同名的另一个类?

编辑:

要回答您评论中的问题,您不能覆盖具有不同参数的方法,也没有必要这样做。您可以在不使用 override 关键字的情况下创建一个新方法(使用新参数),它会工作得很好。

如果您打算禁止调用没有参数的基方法,您可以将方法标记为protected 而不是public。这样它只能从继承自 Base

的类中调用

关于C# "No suitable method found to override."——但是有一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6446007/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com