c#静态函数

    技术2022-05-11  6

    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要执行 Main 方法,系统在运行类 B 的静态构造函数之前首先要运行 B.Y 的初始值设定项。因为引用了 A.X 的值,所以 Y 的初始值设定项导致运行 A 的静态构造函数。这样,A 的静态构造函数将继续计算 X 的值,从而获取 Y 的默认值 0,而 A.X 被初始化为 1。这样就完成了运行 A 的静态字段初始值设定项和静态构造函数的进程,控制返回到 Y 的初始值的计算,计算结果变为 2。


    最新回复(0)