做题之前没有遇到过这类问题。
因此想了一会儿,还好回来验证了一下,发现自己做对了。
后面是我的思路,欢迎大家指正。

 1 using System;
 2 
 3 namespace Training
 4 {
 5     public class A
 6     {
 7         public static int X = B.Y - 2;
 8         public static void Main()
 9         {
10             Console.WriteLine("{0},{1}", A.X, B.Y);
11         }
12     }
13 
14     public class B
15     {
16         public static int Y = A.X + 1;
17         public B()
18         {}
19     }
20 }
21 

摘抄一段帮助:
静态成员在第一次被访问之前并且在任何静态构造函数(如调用的话)之前初始化。
程序的入口点在A,因此在程序启动时候X初始化,由于计算X的值需要引用B.Y,
接着初始化B.Y。B.Y=A.X + 1,此时A.X正在初始化过程中,因此相当于未定义,取int类型默认值0。
所以Y=1, X=-1。
打印结果: 1,-1
posted on 2007-06-09 17:39  66ccff  阅读(429)  评论(0编辑  收藏  举报