有如下代码:
using System;
class B
{
public static int Y = A.X + 1;
static B() { }
static void Main()
{
Console.WriteLine("X={0},Y={1}", A.X, B.Y);
Console.Read();
}
}
class A
{
public static int X;
static A()
{
X = B.Y + 1;
Console.WriteLine(B.Y.ToString());
}
}
我试着将类A放在类B的前面,在调试的时候发现怎么也是先执行类A的呀.c#的代码执行顺序到底有什么规则啊
using System;
class B
{
public static int Y = A.X + 1;
static B() { }
static void Main()
{
Console.WriteLine("X={0},Y={1}", A.X, B.Y);
Console.Read();
}
}
class A
{
public static int X;
static A()
{
X = B.Y + 1;
Console.WriteLine(B.Y.ToString());
}
}
我试着将类A放在类B的前面,在调试的时候发现怎么也是先执行类A的呀.c#的代码执行顺序到底有什么规则啊
你的ClassA有个静态的构造函数
public static int Y = A.X + 1; 这句话
而你a.x是a类里面的
所有又开始初始化a类.