如何在c#中使用静态方法

时间:2014-09-06 17:54:14

标签: c# static

为什么以下代码会返回1,1,1而不是1,2,3?我想保留int temp值,以便我可以在其他地方使用它。如果我直接拨打Console.WriteLine(count()),它就有效。

class Program
{
    private static int start = 0;
    static void Main(string[] args)
    {
        int temp = count();
        Console.WriteLine(temp);
        temp = count();
        Console.WriteLine(temp);
        temp = count();
        Console.WriteLine(temp);
    }

    static int count()
    {
        return start + 1;
    }
}

2 个答案:

答案 0 :(得分:8)

如果您希望计数返回每次调用时递增的值,则应将修改后的值存储回变量中:

static int count()
{
    start = start + 1;
    return start;
}

答案 1 :(得分:1)

Ndech的代码将从你的(修改过的)问题中执行所需的输出,你每次看到1,1,1的原因是:

static int count()
{
    return start + 1;
}

当start = 0时,如果每次调用count()时返回start + 1,那么每次它都是0 + 1。 Ndech提供的代码示例将执行:

start = 0; // before first console.write
count();
start = 1; // first console.write
count();
start = 2;
etc...

另一种可写的方式是:

static int count()
{
    return ++start; // take the current value of start, and add one to it.
}