我写了一个这样的课:
class Singleton
{
private Singleton()
{
Console.WriteLine("Initialized.");
Singleton.num++;
}
public static uint num;
private static Singleton instance = new Singleton();
public static Singleton Instance
{
get { return Singleton.instance; }
private set { }
}
}
Run Code Online (Sandbox Code Playgroud)
在我的主要方法中,如果我这样写:
Console.WriteLine("====================");
Singleton s = Singleton.Instance;
Console.WriteLine("====================");
//Console.WriteLine(Singleton.num);
Run Code Online (Sandbox Code Playgroud)
我有一个输出像:
====================
Initialized.
====================
Run Code Online (Sandbox Code Playgroud)
但如果我取消注释最后一行,我会得到这样的输出:
Initialized.
====================
====================
1
Run Code Online (Sandbox Code Playgroud)
为什么构造函数在第二种情况下的任何进程之前都是墨水?为什么最后一行会影响以前的程序?
c# ×1