2010-02-24 21 views

risposta

29

I tipi anonimi sono immutabili per progettazione.

I tipi anonimi sono pensati per contenere i valori e un tipo che rappresenta un valore non deve essere mutabile.

Inoltre, li renderebbe inaffidabili in un dizionario, poiché l'hashcode potrebbe cambiare dopo la creazione.
Molti metodi LINQ usano dizionari e, soprattutto con una valutazione ritardata, LINQ con tipi mutabili può portare a sottili bug misteriosi.

+0

È stato veloce :-) Thnx – Marko

+7

Si noti che i tipi anonimi in VB possono essere parzialmente modificati. In VB si stabilisce quali parti del tipo anonimo sono modificabili; il codice generato non utilizzerà bit mutabili come parte di un codice hash/uguaglianza, quindi non si ottiene il problema "perso nel dizionario". Abbiamo deciso di non implementare queste estensioni in C#. –

+0

Non lo sapevo; Grazie. – SLaks

Problemi correlati