.net中变量的初始化顺序
关于.net中变量的初始化顺序的文章开过一些,不过看过就忘记了。还是自己钻研一下,印象比较深刻。
class Program
    {
        static void Main(string[] args)
        {
            DriveB d=new DriveB();
        }
    }
    class BaseA
    {
        static DisplayClass a = new DisplayClass("基类静态成员初始化");
        DisplayClass BaseA_c = new DisplayClass("基类实例变量BaseA_c初始化");
        public BaseA()
        {
            Console.WriteLine("基类构造方法被调用");
        }
    }
    class DriveB :BaseA
    {
        static DisplayClass DriveB_b = new DisplayClass("继承类静态成员DriveB_b初始化");
        //static BaseA DriveB_a = new BaseA();
        DisplayClass DriveB_c = new DisplayClass("继承类实例变量DriveB_c初始化");
        public DriveB()
        {
            Console.WriteLine("继承类构造方法被调用");
        }
    }
    class DisplayClass
    {
        public DisplayClass(string diplayString)
        {
            Console.WriteLine(diplayString);
            Console.WriteLine();
        }
    }看一下结果:

得出初始化顺序结论:
1)继承类静态成员变量初始化
2)继承类实例变量初始化
3)基类静态静态成员变量初始化
4)基类实例变量初始化
5)基类构造方法调用
6)继承类构造方法调用。
另外发现.net中变量的初始化和java似乎不同。
欢迎大家批评指正。
作者:Jackhuclan
出处:http://jackhuclan.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://jackhuclan.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
                    
                
    
        
                
            
        
浙公网安备 33010602011771号