回 帖 发 新 帖 刷新版面

主题:求救

请教一下,没有对X,Y赋值,怎么执行结果为X=1,Y=2


**************************************************
 *            静 态 构 造 函 数 练 习
 * (1)①②③……为执行顺序
 * (2)输出结果: static A()
 *                 static B()
 *                 X = 1, Y = 2
 ***************************************************/
using System;
class A
{
 public static int X;

 static A()           //④ 执行完后返回到③
 {
  X = B.Y + 1;
  Console.WriteLine("static A()");
 }
}

class B
{
 public static int Y = A.X + 1;      //③ 调用了A的静态成员,
                                                     //   转到A的静态构造函数---->

 static B()           //② 如果带有初始值设定项的静态字段,
              //   执行该类的静态构造函数时,
              //   先要按照文本顺序执行那些初始值设定项。
              //   转到初始值设定项---->
 {
  Console.WriteLine("static B()");
 }

 static void Main()         //① 程序入口,
              //   如果类中包含用来开始执行的 Main 方法,
              //   该类的静态构造函数将在调用 Main 方法之前执行。
              //   转到B的静态构造函数---->
 {
  Console.WriteLine("X = {0}, Y = {1}", A.X, B.Y);//⑤ 输出结果
  Console.ReadLine();
 }
}

回复列表 (共1个回复)

沙发

public static int Y = A.X + 1; 

这里是static 啊? 明白了吧

我来回复

您尚未登录,请登录后再回复。点此登录或注册