2017-02-01 2 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

Ha! Если он может потерпеть неудачу, он что-то делает, а? Я пытался выяснить, что именно. – dsolimano

Смежные вопросы