class Program
{
private static int x;public static int X
{
get { return x++; }
}static void Main(string[] args)
{
PlusX(X);
}public static void PlusX(int value)
{
Console.WriteLine("Value is: {0}", value);
Console.ReadKey();
}
}为什么最后的运行结果为0,断点查看,在PlusX(X)的时候X为2,可是进入方法里面的时候却成了0,求大神们给我详细讲解下里面的原因。从运行到最后计算结果,详细啊,小弟还是个小白

解决方案 »

  1.   

    加断点看和不加效果不同的
    public static int X
    {
        get { return x++; }
    }每访问一次,就返回当前x的值,然后x自加1.
    所以你F5直接运行,就是0,你每查看一次,就会增加1个,但查看到当前是1的时候,此时x已经变为2了。以此类推。
      

  2.   

    运行默认值就是0
    先去X值,再++
    PlusX(X);
    PlusX(X);
    就可看到效果
      

  3.   

    回复:wuyazhe 那PlusX(X)的时候X为2,也就是PlusX(2)的时候,进入方法体怎么又变成0了呢?