【发布时间】:2011-03-10 14:13:49
【问题描述】:
如果我们的项目中还有一个静态类,哪个静态类首先初始化?
例如:下面的代码给出了空异常。
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 类会初始化自己,那么Second 的secondArray 字段将为空。但是如果Second 类首先初始化,那么Second 类firstArray 将为空。我试图告诉哪个初始化首先产生不同的结果。
我认为这是关于我的项目的抽象问题。我在尝试了解为什么会得到意外结果时遇到它。
【问题讨论】:
标签: c# .net initialization static-classes