Marko
Marko

Reputation: 5552

Anonymous type property setters

Why do anonymous types not have property setters?

var a = new { Text = "Hello" };
a.Text = "World"; //error

Upvotes: 18

Views: 8008

Answers (1)

SLaks
SLaks

Reputation: 887413

Anonymous types are immutable by design.

Anonymous types are meant to hold values, and a type that represents a value should not be mutable.

Also, it would make them unreliable in a dictionary, as the hashcode could change after creation.
Many LINQ methods use Dictionaries, and, especially with delayed evaluation, LINQ with mutable types can lead to subtle mysterious bugs.

Upvotes: 40

Related Questions