.NET Framework: Слабо документированная фича инициализаторов C#, граничущая с приличиями.
Решарпер наткнул меня на следующий интересный случай. Я порылся и ничего не нашел в MSDN. Это относиться к .NET Framework 3.0 и длалее. Оказывается запись var classLevelOne = new ClassLevelOne { PropClassLevelTwoInOne = { ClassLevelThreeInTwo = new ClassLevelThree () } }; Не тоже самое, что запись var classLevelOne = new ClassLevelOne { PropClassLevelTwoInOne = new PropClassLevelTwo { ClassLevelThreeInTwo = new ClassLevelThree () } }; Первая запись говорит о том, что нужно не задать, а взять из свойства (PropClassLevelTwoInOne ) уже заданный там ранее объект и задать члены этого объекта. Как я понимаю, объект в этом свойстве нужно задать ранее в конструкторе или в этом же "скобочном" инициализаторе. Я был немного шокирован, но дебаггинг не дал соврать, потому что выпадает исключение, если свойтсво PropClassLevelTwoInOne ссылается на null. А ответ удалось найти в спецификации языка ...