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
    谢谢参与!

  • 相关阅读:
    [ZZ]风险驱动的测试
    移动测试书籍推荐
    4月收藏
    Appium路线图及1.0正式版发布
    匿名吐槽和测试小道消息
    文章收藏
    [ZZ]最小化不可重现的bug
    华人世界——客家足迹行
    移动测试会第七期
    2月收藏
  • 原文地址:https://www.cnblogs.com/teamleader/p/1944810.html
Copyright © 2011-2022 走看看