C#类里面的static变量,不会在程序启动时就初始化吗?解决方法
C#类里面的static变量,不会在程序启动时就初始化吗?下面的几行程序:public class Singleton{public Single
C#类里面的static变量,不会在程序启动时就初始化吗?
下面的几行程序:
public class Singleton
{
public Singleton() { Console.WriteLine("ctor\n"); }
private static readonly Singleton instance = new Singleton();
}
class Program
{
static void Main(string[] args)
{
}
}
什么输出也没有。我期待的是,类的static成员总是会被初始化的,也就是会有"ctor"这样的输出啊。
我的理解错在哪里?
[解决办法]可以肯定的是静态成员一定是在实例成员以前进行初始化.
你声明了静态的instance,但是该类并没有被使用。
该类没有被调用,也就不会执行任何一次实例化。所以,静态成员也就没有机会初始化。