我正在关注游戏开发者的数学和#34; YouTube系列。代码工作没有问题,直到我在Vector类中定义了一个Length()方法,如下所示:
class Vector
{
public const float Length()
{
float length;
length = Math.Sqrt(x*x + y*y);
return length;
}
public float x, y;
}
你们其中一个人能否找到我做错了什么。剩下的代码被遗漏了,因为就我所知,它并不相关。
答案 0 :(得分:9)
C#中没有const
方法。尝试删除它!
答案 1 :(得分:1)
常量是具有永不改变的值的标识符。因为你的函数清楚地使用变量来计算结果,所以它不能是常数。
即使你有这样的代码:
public const int ReturnNumber()
{
return 5;
}
它仍然会破坏,因为在C#中,你不能拥有常量函数。你可以这样做:
private const int Five = 5;
public int ReturnNumber()
{
return Five;
}
请记住,const
关键字只能应用于标识符,而不能应用于函数。希望这个解释能帮助你理解。
答案 2 :(得分:0)
"并且下一个错误是无法将double转换为float = Math.Sqrt(x * x + y * y)"
Math.Sqrt返回一个double。你可以将它投射到浮动:
length = (float) Math.Sqrt(x*x + y*y);