如果我们的项目中还有一个静态类,哪个静态类首先初始化?
例如:下面的代码给出了空异常。
class Program
{
static void Main(string[] args)
{
First.Write();
Second.Write();
}
}
static class First
{
public static int[] firstArray = new int[20];
public static int[] secondArray = Second.secondArray;
public static void Write()
{
Console.WriteLine(firstArray.ToString());
Console.WriteLine(secondArray.ToString());
}
}
static class Second
{
public static int[] firstArray = First.firstArray;
public static int[] secondArray = new int[30];
public static void Write()
{
Console.WriteLine(firstArray.ToString());
Console.WriteLine(secondArray.ToString());
}
}
如果你注意,你会看到如果First
类将初始化自己,那么secondArray
字段Second
将为空。但是如果Second
类首先初始化,那么Second
类firstArray
将为空。我试图告诉哪个初始化首先会产生不同的结果。
我认为这是关于我的项目的抽象问题。我在试图理解为什么我得到意想不到的结果时遇到了它。