c# - 匿名类型属性 setter

标签 c# .net-3.5 anonymous-types

为什么匿名类型没有属性 setter ?

var a = new { Text = "Hello" };
a.Text = "World"; //error

最佳答案

匿名类型在设计上是不可变的。

匿名类型旨在保存值,表示值的类型不应该是可变的。

此外,这会使它们在字典中变得不可靠,因为哈希码在创建后可能会发生变化。
许多 LINQ 方法都使用字典,尤其是在延迟求值的情况下,具有可变类型的 LINQ 可能会导致微妙的神秘错误。

关于c# - 匿名类型属性 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2328676/

相关文章:

c# - 如何获取 List<of anonymous type> 字段的值(加上转换)?

c# - 如何使用带值的 command.Parameters.AddWithValue?

c# - 如何根据其他两个字段的值从 MSSQL 返回一个字段

c# - 某些应用程序会停止所有获取击键的尝试

asp.net - 带有 col、colgroup、tbody 和 thead 的 HTML 表标记在 Visual Studio 2010 和 Visual Studio 2012 中引发编译错误

c# - map 列表 <> 与 Automapper?

multithreading - 我怎样才能完成ThreadPool.Join?

.net - 为什么我不能将匿名类型作为参数传递给函数?

C# 来自循环的匿名对象的匿名数组

c# - 如何从 List<DateTime> 中获取最接近的 DateTime