using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
class Program
{
public static int X;
//步骤2,因为在步骤1中调用了 Program.X,而在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。
static Program()
{
X = B.Y + 1; //此时B.Y=0;
Console.WriteLine("static A()");
}
}
class B
{
/*步骤1
如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。
如果类中的静态字段带有初始化,则静态字段的初始化语句将在静态构造函数之前运行。*/
public static int Y = Program.X + 1;
static B()
{
Console.WriteLine("static B()");
}
static void Main()
{
Console.WriteLine("X = {0}, Y = {1}", Program.X, B.Y);
Console.ReadLine();
}
}
}