zoukankan      html  css  js  c++  java
  • .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似乎不同。
    欢迎大家批评指正。

  • 相关阅读:
    记录ViewPager配合Fragment使用中遇到的一个问题
    StringBuffer类的构造方法
    认识StringBuffer类
    Java中增强for循环的用法
    xml解析案例
    XML的序列化(Serializer)
    文件权限之(介绍,更改,扩展)
    保存数据到sdcard中去
    反编译
    后端——框架——容器框架——spring_core——格式化器
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/1033042.html
Copyright © 2011-2022 走看看