易百教程

22、什么是匿名类型?

匿名类型是由编译器生成的运行时编译器。在创建匿名编译器时不需要指定名称,但可以写出属性名称和它们的值。编译器会在运行时创建这些属性并为其赋值。

var v = new { PropertyFirst = "first value", PropertySecond = "second value" };  
Console.WriteLine(k.PropertyFirst);

匿名类在LINQ查询中很有帮助。它在执行查询时保存了中间结果。

对匿名类型也有一些限制/缺点:

  • 匿名类型不能实现接口。
  • 匿名类型不能指定任何方法。
  • 不能定义静态成员。
  • 所有定义的属性必须被初始化。
  • 只能定义公共字段。