我的程序怎么了?

namespace ConsoleApplication1
{
class Program
{
    static void Main(string[] args)
    {
        bool check = isPowerOfTwo(255);
        Console.WriteLine(check);
        Console.ReadKey();
    }

    public bool isPowerOfTwo (uint x)
    {
        while (((x % 2) == 0) && x > 1)
        {
            x /= 2;
        }
        return (x == 1);
    }
}


}

我有错误


  非静态字段,方法或属性需要对象引用。

最佳答案

使方法isPowerOfTwo静态:

public static bool isPowerOfTwo (uint x)


方法Main是静态的,因此您只能在其中调用同一类的静态方法。但是,当前的isPowerOfTwo是实例方法,只能在Program类的实例上调用。当然,您也可以在Program内创建Main类的实例并调用它的方法,但这似乎是一个开销。

关于c# - 在C#中检查整数是否为2的幂,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17418676/

10-12 03:59