5

可能重复:
为什么 C# 中匿名类型的属性是只读的?

我写了这样的东西,

 var suspense = new { Name = "Android", Market = string.Empty };
 suspense.Market = "Potential";

.NET 抛出错误

无法将属性或索引器“AnonymousType#1.Market”分配给 - 它是只读的

我知道 C# 中的 AnonymousTypes 是不可变的,但为什么呢?这是由于 CLR 的一些限制吗?

4

1 回答 1

3

驱动不可变匿名类型的动机是因为 LINQ API 在内部使用哈希表,并且返回可以修改的匿名类型的投影是一种危险的情况。

您可以检查:

不可变类型:了解它们的好处并使用它们

匿名类型和对象身份作者 Tim Ng 在 MSDN 上

于 2013-01-15T11:28:03.107 回答