zoukankan      html  css  js  c++  java
  • 你可能不知道的对象实例化顺序

    猜猜下面这段代码的输入,我预计90%以上的人给不出正确的答案
     
    void Main()
    {
        InitSeqBase x =
    new InitSeqChild();
    }

    public class InitSeqBase
    {
        
    public static Nothing _SField = new Nothing("base static field initializer");
        
    static InitSeqBase()
        {
            Console.WriteLine("base static constructor");
        }
        
        
    public Nothing InsField = new Nothing("base Instance field initializer");
        
        
    public InitSeqBase()
        {
            Console.WriteLine("base Instance constructor");
        }
    }

    public class InitSeqChild : InitSeqBase
    {
        
    public static Nothing _SField = new Nothing("child static field initializer");
        
    static InitSeqChild()
        {
            Console.WriteLine("child static constructor");
        }
        
        
    public Nothing InsField = new Nothing("child Instance field initializer");
        
        
    public InitSeqChild()
        {
            Console.WriteLine("child Instance constructor");
        }
    }

    public class Nothing
    {
        
    public Nothing(string s)
        {
            Console.WriteLine(s);
        }
    }
     
     
     
     
     
    答案在此(选中后可见,白色字体):
    child static field initializer
    child static constructor
    child Instance field initializer
    base static field initializer
    base static constructor
    base Instance field initializer
    base Instance constructor
    child Instance constructor
    谢谢参与!

  • 相关阅读:
    spring mvc ajax请求
    spring mvc 返回页面数据
    spring mvc 参数传递的三种方式
    spring mvc 注解示例
    spring mvc handler的三种方式
    MyBatis 一级、二级缓存
    MyBatis 调用存储过程
    MyBatis动态SQL与模糊查询
    spring mvc 注解入门示例
    MyBatis 一对多关联查询
  • 原文地址:https://www.cnblogs.com/teamleader/p/1944810.html
Copyright © 2011-2022 走看看