2010-02-24 16 views

Antwort

29

Anonyme Typen sind durch Design unveränderlich.

Anonyme Typen sollen Werte enthalten, und ein Typ, der einen Wert darstellt, sollte nicht veränderbar sein.

Außerdem würde es sie in einem Wörterbuch unzuverlässig machen, da sich der Hashcode nach der Erstellung ändern könnte.
Viele LINQ-Methoden verwenden Wörterbücher, und insbesondere bei der verzögerten Auswertung kann LINQ mit veränderlichen Typen zu kleinen mysteriösen Fehlern führen.

+0

Das war schnell :-) Thnx – Marko

+7

Beachten Sie, dass anonyme Typen in VB teilweise mutiert werden dürfen. In VB können Sie angeben, welche Teile des anonymen Typs änderbar sind; Der generierte Code wird keine veränderbaren Bits als Teil eines Hash-Codes/einer Gleichheit verwenden, sodass Sie nicht das Problem "Lost in the Dictionary" erhalten. Wir haben uns entschieden, diese Erweiterungen nicht in C# zu implementieren. –

+0

Ich wusste das nicht; Vielen Dank. – SLaks