13

它说

“方法必须有返回类型”

每当我尝试调试它时。

我不知道如何修复这个类

这是 ac# 编码的 2d 游戏的玩家类

public class player
{
    public float moveSpeed;
    public Vector2 position;
    public Texture2D texture;

    //default constructer
    public Player(Texture2D tex, Vector2 startPos)
    {
        position  = startPos;
        texture   = tex;
        moveSpeed = 5.0f;
    }
    public void Update(GameTime gameTime)
    {
        //------------------------------------------
        //check for keyboard input(keyboard IF statements)

    }
    public void Draw(SpriteBatch spriteBatch)
    {
        spriteBatch.Draw(texture, position, Color.White);
    }
}
4

5 回答 5

23

你的类是player,但构造函数是Player,因为它们是不同的,它期望Player是一个方法而不是一个构造函数

将班级名称更改为Player,您会很好

于 2014-03-30T03:35:20.180 回答
10

你的班级名称是player小写的。当编译器找到类的构造函数Player(大写)时,它认为它是一个在Player没有指定返回类型的情况下调用的方法。

因此,只需将您的类重命名为大写Player。C# 区分大小写,所以playerPlayer是两个不同的东西。

于 2014-03-30T03:35:06.040 回答
6

你的类是小写的播放器,你的构造函数是大写的。类名和构造函数应该始终相同并且区分大小写:)

于 2014-03-30T03:35:06.187 回答
2

我想这是一个错字。你的类名是小写的 player 并且你的构造函数有一个大写字母,所以它不被视为一个 cinstructor 而是一个缺少 void 关键字的方法。

编辑:很抱歉 se4ems 是一个重复的答案,似乎很多人几乎同时回答了;)

于 2014-03-30T03:37:47.667 回答
0

您的类名是“player”,但构造函数名称是“Player”(p 的大写)。所以构造函数被认为是没有返回类型的方法。将其重命名为“播放器”,它将起作用:)

于 2014-03-30T03:38:53.607 回答