簡體   English   中英

如何解決此錯誤“並非所有代碼路徑都返回值”

[英]How do I solve this error “not all code paths return a value”

下划線標出了setSpeedX ,以顯示錯誤“並非所有代碼路徑都返回值”。 我可以知道如何解決嗎? 代碼如下:

class Ball
{
    public int speedX { get; private set; }
    public int speedY { get; private set; }
    public int positionX { get; private set; }
    public int positionY { get; private set; }

    public Ball(int speedX, int speedY, int positionX, int positionY)
    {
        this.speedX = speedX;
        this.speedY = speedY;
        this.positionX = positionX;
        this.positionY = positionY;
    }

    public int setSpeedX(int newSpeedX)
    {
        speedX = newSpeedX;
    }    

    public int setSpeedY(int newSpeedY)
    {
        speedY = newSpeedY;
    }

    public int setPositionX(int newPositionX)
    {
        positionX = newPositionX;
    }

    public int setPositionY(int newPositionY)
    {
        positionY = newPositionY;
    }
}

謝謝。

return添加到應該返回值的方法中:

public int setPositionY(int newPositionY)
{
    positionY = newPositionY;
    return positionY;
}

或更改它們以返回void

public void setPositionY(int newPositionY)
{
    positionY = newPositionY;
}

您永遠不會放置return語句,因此即使您聲明了應該使用的方法,也不會return任何值。

有兩種方法可以解決此問題:

使方法void

public void setSpeedX(int newSpeedX)
{
    speedX = newSpeedX;
}

或返回一個值:

public int setSpeedX(int newSpeedX)
{
    speedX = newSpeedX;
    return speedX;
}

順便說一下,這適用於所有方法,而不僅僅是setSpeedX

您正在方法中設置一個值( setSpeedXsetSpeedYsetPositionXsetPositionY ),但不返回任何值。 但是方法的簽名具有返回類型int

因此,將返回類型int替換為void ,如下所示:

public void setSpeedX(int newSpeedX)
{
    speedX = newSpeedX;
}    

public void setSpeedY(int newSpeedY)
{
    speedY = newSpeedY;
}

public void setPositionX(int newPositionX)
{
    positionX = newPositionX;
}

public void setPositionY(int newPositionY)
{
    positionY = newPositionY;
}

或返回int類型的值,如下所示:

public int setSpeedX(int newSpeedX)
{
    speedX = newSpeedX;
    return speedX;
}    

public int setSpeedY(int newSpeedY)
{
    speedY = newSpeedY;
    return speedY;
}

public int setPositionX(int newPositionX)
{
    positionX = newPositionX;
    return positionX;
}

public int setPositionY(int newPositionY)
{
    positionY = newPositionY;
    return positionY;
}

要么返回一個值

public int setSpeedX(int newSpeedX)
{
    speedX = newSpeedX;
    return(speedX);
}

或將方法更改為無效

public void setSpeedX(int newSpeedX)
{
    speedX = newSpeedX;
}

返回值似乎沒有太多價值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM