12
A
回答
29
匿名類型是不可變的設計。
匿名類型是爲了保存值,而表示值的類型不應該是可變的。
此外,它會使它們在字典中不可靠,因爲哈希碼在創建後可能會更改。
許多LINQ方法都使用字典,特別是在延遲評估時,LINQ具有可變類型會導致細微的神祕錯誤。
相關問題
- 1. 動態設置C#匿名類型的屬性名稱
- 2. 設置匿名類型的屬性名稱
- 3. 使用匿名類型設置只讀屬性
- 4. 匿名類型屬性的別名
- 5. JSON匿名類型屬性undefined?
- 6. 匿名類型和多個屬性
- 7. 屬性設置器類型的其他值設置爲屬性?
- 8. 不同類型的屬性設置器
- 9. 如何從匿名類型檢索強類型屬性?
- 10. 設置/屬性類型設置
- 11. 匿名類型
- 12. 匿名類型
- 13. 匿名類型
- 14. 匿名類型
- 15. 如何在匿名類型中使用複雜屬性名稱?
- 16. 匿名類型不能有多個同名的屬性
- 17. 給予一個別名匿名類型屬性不工作
- 18. 設置正確類型的類屬性
- 19. 爲匿名類添加額外屬性
- 20. 具有匿名類/屬性的LINQ
- 21. 匿名函數返回類屬性? PHP
- 22. 集合泛型列表匿名類型設置爲系統Data.IDataReader
- 23. 將屬性屬性設置爲裝飾類的類型
- 24. 使用一種匿名類型的Linq使用其中一種匿名類型屬性
- 25. Deserialise匿名類型
- 26. 匿名類型C#
- 27. 與匿名類型
- 28. 從匿名類型
- 29. C#匿名類型
- 30. 與匿名類型
這很快:-) Thnx – Marko 2010-02-24 19:02:59
請注意,VB中的匿名類型允許部分變異。在VB中,你可以指出匿名類型的哪些部分是可變的;生成的代碼將不會使用可變位作爲散列碼/等號的一部分,因此您不會收到「在字典中丟失」問題。我們決定不在C#中實現這些擴展。 – 2010-02-24 19:48:47
我不知道;謝謝。 – SLaks 2010-02-24 20:02:54