[英]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
。
您正在方法中設置一個值( setSpeedX
, setSpeedY
, setPositionX
, setPositionY
),但不返回任何值。 但是方法的簽名具有返回類型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.