В инициализаторе объекта нет необходимости new
:
object-creation-expression:
new type ( argument-list(opt) ) object-or-collection-initializer(opt)
new type object-or-collection-initializer
object-or-collection-initializer:
object-initializer
collection-initializer
object-initializer:
{ member-initializer-list(opt) }
{ member-initializer-list , }
initializer-value:
expression
object-or-collection-initializer
Это последний, который является наиболее важным.Он представляет правую часть вашего синтаксиса property = value
.Это означает, что с правой стороны может быть нормальное выражение c # (с оператором new
) или другого инициализатора.В этом случае все, что вам нужно, это открывающие и закрывающие скобки.