匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型。
以下示例显示了用两个名为 Amount
和 Message
的属性进行初始化的匿名类型。
//1
var v = new { Amount = 108, Message = "Hello" };
// Rest the mouse pointer over v.Amount and v.Message in the following
// statement to verify that their inferred types are int and string.
Console.WriteLine(v.Amount + v.Message);
//2
var productQuery =
from prod in products
select new { prod.Color, prod.Price };
foreach (var v in productQuery)
{
Console.WriteLine("Color={0}, Price={1}", v.Color, v.Price);
}
注意
匿名类型包含一个或多个公共只读属性。 包含其他种类的类成员(如方法或事件)为无效。用来初始化属性的表达式不能为 null
、匿名函数或指针类型。
匿名类型的实例不能泄露到方法外部,方法、属性、构造函数或索引器的形参不能为匿名类型,字段、属性、时间或方法的返回类型不能为匿名类型。