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

6

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

我写了类似这样的代码:

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

.NET抛出错误

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

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


1
我更想探讨相反的问题。为什么创建不可变命名类型如此困难? - CodesInChaos
请返回已翻译的文本:http://blogs.msdn.com/b/sreekarc/archive/2007/04/03/immutable-the-new-anonymous-type.aspx 和 http://blogs.msdn.com/b/ericlippert/archive/2012/01/30/anonymous-types-unify-within-an-assembly-part-two.aspx - Tim Schmelter
1个回答

3

1
VB.NET通过将Key添加到相应的字段,支持可变匿名类型,那么C#的限制是什么? - vinodpthmn
@vinodpthmn - 不确定你是否可以检查一下那篇文章,它以VB.NET作为基础语言,第二篇文章在MSDN上阅读。 - Pranay Rana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接