在C#中,匿名类型的属性是只读的:
var person = new { Surname = "Smith", OtherNames = "John" };
person.Surname = "Johnson"; // ERROR: .Surname is read-only
当然,如果我想要可写字段或属性,我可以声明一个真正的类,但不管怎样,这个设计决策背后的原因是什么使这些属性成为只读?
答案 0 :(得分:51)
关于here的有趣文章。从那里......
... [B]确保会员这样做 不改变,我们确保散列是 恒定的生命周期 object.This允许匿名类型 与收藏品一起使用 哈希表,没有实际丢失 当成员被修改时他们。 有很多好处 不可挽回的,它是巨大的 简化了使用的代码 对象,因为它们只能被分配 创建后使用的值 (想想线程)