Здравствуйте, Pauel, Вы писали:
P>Здравствуйте, Serginio1, Вы писали:
P>>>Если выбирали такой дизайн по какой причине, то очевидно что readonly и запрет такого конструктора сюда не входит.
S>> Выбирали такой дизайн криворукие дизайнеры. В шарпе сделали правильно.
P>Что вы предлагаете, переписать с С++ на C# ради инициализаторов?
Нет про конструкторы
Именованные и необязательные аргументы (Руководство по программированию на C#)
P>Тамошние инициализаторы, кстати говоря, довольно убогие.
P>Я бы предпочел инициализатор навроде такого
P>P>Form {
P> header: {content: aaa}
P> main: {
P> list: [
P> ItemA {id: 'a', content: yyy },
P> ItemB {id: 'a', content: zzz },
P> ]
P> },
P> footer: OkCancelFooter {onOk: onOkHandler, onCancel: onCancelHandler, onDispose: onDisposeHandler}
P>}
P>
P>Глядишь, с таким инициализатором не пришлось бы городить огород типа XAML
XAML это про декларативность. То есть за строкой скрывается куча кода.
Ну а в приведённом тобой коде это экономия на new.