2017-02-01 142 views
0

在C#中,构造函数按最通用的顺序执行 - 最特殊的(从基础到派生)。每个类继承自Object,因此将调用Object的无参数构造函数。我的问题是,在Object的构造函数中发生了什么?对象构造函数调用

+1

看看源代码,看看你自己。 – Servy

回答

2

为什么不看the reference source

// Creates a new instance of an Object. 
    [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] 
    [System.Runtime.Versioning.NonVersionable] 
    public Object() 
    {    
    } 

我不知道它怎么可能会失败,因为它是空的,但它似乎是一个无操作不能失败 - 我没有时间深入到IL,但我会猜测这是newobj发生的位置

如果内存不足以满足请求,将抛出OutOfMemoryException。

+0

不确定你是从这里说出来的(因为'Cer.MayFail'),或者它没有做任何事情(因为空的身体)。 – hvd

+0

哈!如果它可以失败,它会做些什么,呃?我一直在试图弄清楚究竟是什么。 – dsolimano

相关问题