• .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似乎不同。
    欢迎大家批评指正。

  • 相关阅读:
    c语言:猴子吃桃问题
    c语言:输入任意数求该数的阶乘
    (整理三)高并发架构思路,附十万定时任务执行解决方案
    (整理4)RPC服务和HTTP服务简单说明
    .NET Core和Swagger 生成 Api 文档转
    (整理二)读取大日志文件
    (整理一)理解分布式事务,高并发下分布式事务的解决方案-附索引的利弊
    2016年结
    2013年结
    2017年结
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/1033042.html
Copyright © 2020-2023  润新知