大家一起来探讨一下静态构造器和静态字段调用的先后顺序吧

今天在MSDN中看文章的时候,看到静态构造函数这一段,发现自己有点不懂,想了好半天还没弄明白,现在把它贴出来,看看谁能够帮助我,呵呵,我先把代码贴出来,
using System;
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

对于这个输出我有点疑问,在这段代码编译运行的时候,首先,由于class B里面带有Main,所以肯定是要先运行static B(),但是在class B()中又有静态的字段,所以会先执行Y = A.X + 1这行代码,到了这里的时候,由于A.X这句,所以在class A中,程序会先执行静态构造器,静态构造器中的代码X = B.Y + 1,这个时候该怎么往下执行了?请教一下

posted on 2006-06-05 17:35  .net学习交流  阅读(535)  评论(9编辑  收藏  举报

导航