Что ж, моя главная проблема с инициализаторами объектов заключается в том, что для них требуется изменяемый тип: по возможности я предпочитаю использовать неизменяемые типы.Сказав это, когда инициализатор объекта будет работать (например, для элементов управления пользовательского интерфейса), я склонен использовать их.
Я бы мог подумать дважды, если значения для назначений были особенно сложны для вычисления- в частности, вы должны иметь возможность получить значение в одном выражении , и это может оказаться менее читабельным, чем вычисление его по нескольким операторам ... но это относительноредко в ситуациях, когда это возможно начать с.
Я не могу сказать, что у меня были какие-либо проблемы с исключениями во время присваивания свойств с инициализаторами объектов - это просто не то, что подходит мне.Если бы это было так, я бы, вероятно, попытался написать неудачный модульный тест в любом случае, и в этот момент код, как правило, легко исправить без отладчика.
Очевидно, что модерация всегда хорошая вещь - я не предлагаюдоводя это до крайности ... но если вы устанавливаете дюжину свойств, использование инициализатора объекта не будет для меня такой же проблемой, как наличие дюжины свойств для установки.Связаны ли какие-либо из этих дюжин свойств?Должны ли они быть как-то объединены?(В некоторых случаях хорошо - опять же, особенно с элементами управления пользовательским интерфейсом - но часто это не так.)