Method认为它是一个构造函数

时间:2014-06-30 18:46:46

标签: c# visual-studio

我正在关注游戏开发者的数学和#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;
    } 

你们其中一个人能否找到我做错了什么。剩下的代码被遗漏了,因为就我所知,它并不相关。

3 个答案:

答案 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);