关于静态成员与静态方法的问题
class A
{
public static int X;
static A(){
X=B.Y+1;
}
}
class B
{
public static int Y=A.X+1;
static B(){}
static void Main(){
Console.WriteLine( "X={0},Y={1} ",A.X,B.Y);
}
}
输出 x=1,y=2
为什么?
------解决方案--------------------你单步调试看看程序的执行顺序就明白了
简单地说,因为我们先用到类B,所以执行了public static int Y = A.X + 1;,着时候才用到类A,所以执行 X = B.Y + 1;这时候的B.Y是编译器赋予的初值0,所以X=1;,所以Y=2