日期:2014-05-17  浏览次数:20869 次

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,但是该类并没有被使用。

该类没有被调用,也就不会执行任何一次实例化。所以,静态成员也就没有机会初始化。