In C#, object initializers can set public non-read-only fields and properties.
However, with anonymous types, the properties are read-only. So how does .NET set them on object initialization?
In C#, object initializers can set public non-read-only fields and properties.
However, with anonymous types, the properties are read-only. So how does .NET set them on object initialization?
The object initializer for anonymous types doesn't behave like a normal object initializer. i.e. it doesn't set the properties directly. It gets translated into a call to the constructor, which can change readonly fields.