为什么匿名类型在c#中是不可变的

本文关键字:不可变 类型 为什么 | 更新日期: 2023-09-27 17:53:42

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

我写了这样的东西,

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

.NET抛出错误

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

我知道C#中的匿名类型是不可变的,但为什么呢?这是由于CLR的某些限制吗?

为什么匿名类型在c#中是不可变的

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

您可以查看:

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

匿名类型和对象标识作者Tim Ng在MSDN上