为什么C#中的匿名类型的属性是只读的?

时间:2009-07-06 22:01:52

标签: c# c#-3.0

在C#中,匿名类型的属性是只读的:

var person = new { Surname = "Smith", OtherNames = "John" };
person.Surname = "Johnson";  // ERROR: .Surname is read-only

当然,如果我想要可写字段或属性,我可以声明一个真正的类,但不管怎样,这个设计决策背后的原因是什么使这些属性成为只读?

1 个答案:

答案 0 :(得分:51)

关于here的有趣文章。从那里......

  

... [B]确保会员这样做   不改变,我们确保散列是   恒定的生命周期   object.This允许匿名类型   与收藏品一起使用   哈希表,没有实际丢失   当成员被修改时他们。   有很多好处   不可挽回的,它是巨大的   简化了使用的代码   对象,因为它们只能被分配   创建后使用的值   (想想线程)