2010-02-24 6 views

Répondre

29

Les types anonymes sont immuables par conception.

Les types anonymes sont destinés à contenir des valeurs et un type qui représente une valeur ne doit pas être modifiable. En outre, cela les rendrait peu fiables dans un dictionnaire, car le code de hachage pourrait changer après la création.
De nombreuses méthodes LINQ utilisent des dictionnaires et, surtout avec une évaluation retardée, LINQ avec des types mutables peut conduire à des bogues mystérieux subtils.

+0

C'était rapide :-) Thnx – Marko

+7

Notez que les types anonymes dans VB sont autorisés à être partiellement mutés. Dans VB, vous pouvez indiquer quelles parties du type anonyme sont mutables; le code généré n'utilisera pas de bits mutables dans le cadre d'un code de hachage/égalité, de sorte que vous n'obtenez pas le problème "perdu dans le dictionnaire". Nous avons décidé de ne pas implémenter ces extensions en C#. –

+0

Je ne le savais pas; Merci. – SLaks

Questions connexes