Мне нравится C# 3 синтаксис инициализатора и часто его использую, но сегодня при просмотре в Reflector обнаружилось следующее:
var binding = new WSHttpBinding
{
ReaderQuotas = { MaxArrayLength = 100000 },
MaxReceivedMessageSize = 10485760
};
Сначала я подумал, что это ошибка, но он компилируется! Думаю, я все еще узнаю что-то новое все время. :)
Насколько я могу судить, он устанавливает свойство MaxArrayLength
свойства ReaderQuotas
свойства WSHttpBinding
.
Этот синтаксис создает новый объект ReaderQuotas
, а затем устанавливает свойство, или он предполагает, что свойство уже инициализировано? Является ли это общим способом инициализации «дочерних» свойств?
Я нахожу синтаксис немного запутанным...