50 votes

Pourquoi les propriétés de types anonymes en C# en lecture seule?

En C#, les propriétés des types anonymes sont en lecture seule:

var person = new { Surname = "Smith", OtherNames = "John" };
person.Surname = "Johnson";  // ERROR: .Surname is read-only

Bien sûr, je peux déclarer une vraie classe si je veux écriture de propriétés ou de champs, mais peu importe, quel est le raisonnement derrière cette décision de conception pour que les propriétés en lecture seule?

51voto

JP Alioto Points 33482

Article intéressant sur que ici. À partir de là ...

... [B]o veiller à ce que les membres ne pas de changement, nous nous assurons que le hachage est constante pour la durée de vie de la objet.Cela permet à des types anonymes pour être utilisé avec des collections comme les tables de hashage, sans perdre quand les membres sont modifiés. Il y a beaucoup d'avantages de immutabilty dans ce, de manière drastique simplifie le code qui utilise l' objet puisqu'elles ne peuvent être cédées les valeurs lors de la création puis juste utilisé (pensez à enfiler)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X