我有个类Class1,代码如下:
class Class1
{
public static string str = "fsdafdsa";
public static readonly Class1 anobject = new Class1();
static Class1()
{
System.Console.WriteLine("静态构造函数调用");
}
private Class1()
{
}
public static Class1 c()
{
return new Class1();
}
}
在主函数里面的调用代码:
static void Main(string[] args)
{
string s = Class1.str;
Class1 temp =Class1.c();
Console.WriteLine("程序开始");
Console.ReadLine();
}
当我一步步调试程序的时候发现,当我把Class1中的静态构造函数去掉后,程序会先初始化Class1中的静态成员,然后再去调用Main函数。但当我在Class1中加上静态构造函数后,程序就会先执行主函数,当在主函数中调用Cass1的时候,再去初始化Class1中的成员。后来我又发现,当我去掉Main函数中的代码“string s = Class1.str;”后,无论Class中有无静态构造函数,程序都会先执行Main函数。请问各位大侠,这是为什么?
喵喔喔
12345678_0001