It’s an interesting possibility to add new (a, b, c) alongside new { ... }. Btw new { ... } is currently implemented but undocumented, so it might also go away. But there are also downsides.
- It’s genuinely new syntax, and it would take getting used to. By contrast
new { ... }repurposes an existing syntax for structural types with better typing where otherwise you would have got a type error. - In the presence of creator applications, it offers a difficult choice: Do you write
C(...)ornew (...)? I’d argue thatC(...)should be preferable since it has more information and is more regular wrt to classes withapplymethods. But others might choosenew(...), in particular if the class nameCis long. So, this would introduce the sort of fruitless tradeoffs that one should avoid in language design. By contrast fornew {...}there is no competing alternative syntax.
And abaout the new[C] syntax: I believe that boat has sailed.