Есть ли техническая причина, по которой C# не имеет сокращенного обозначения установщика свойств, подобного инициализатору объекта, или это просто выбор дизайна? - PullRequest
4 голосов
/ 26 февраля 2020

Если у меня есть уже созданный объект (например, элемент управления в форме), и я хочу инициализировать ряд свойств, я должен сделать это:

myObj.Details.Color = Colors.Red;
myObj.Details.Name = "My Object";
myObj.Details.Location = Location.Here;

Все знают об инициализаторах объекта, например, var details = new MyObjectDetails() { Color = Colors.Red, Name = "My Object", Location = Location.Here };, но есть ли техническая причина, по которой эта способность не предоставляется для существующих объектов? Например,

myObj.Details { Color = Colors.Red, Name = "My Object", Location = Location.Here };

Редактировать:

Вот мой пример из реальной жизни. Сторонний контроль (Infragistics UltraWinGrid):

_clientTimeDetailUltraGrid.DisplayLayout.Override.HeaderAppearance.FontData.Name = gridHeaderCellFont.Name;
_clientTimeDetailUltraGrid.DisplayLayout.Override.HeaderAppearance.FontData.SizeInPoints = gridHeaderCellFont.SizeInPoints;

Представьте, как это утомительно.

...