正如您从我的昵称中看到的那样,我实际上是学习单例模式的新手,但我遇到了一个问题。在我了解到静态构造函数总是在标准构造函数之前执行,但是在下面的这段代码中,结果是不同的,首先我看到“Insta”字符串然后是“Static”,为什么会发生这种情况?
sealed class Singleton
{
private static readonly Singleton instance;
private Singleton()
{
Console.WriteLine("Insta");
}
static Singleton()
{
instance = new Singleton();
Console.WriteLine("Static");
}
public static Singleton Instance
{
get
{
return instance;
}
}
}
class Program
{
static void Main()
{
Singleton s1 = Singleton.Instance;
}
}