using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { /// <summary> /// 作者:it小金 /// 作用:匿名类型的使用 /// 说明:var 关键字,用于表示隐式类型化的变量。var 与new 关键字一起使用时,可以创建匿名类型。 /// </summary> class Program { static void Main(string[] args) { var a = new { name = "it小金", age = 24 };//匿名类型只是一个继承了Object 的、没有名称的类。该类的定义从初始化器中推断,类似于隐式类型化的变量。 //a.name="hh";这是错误的,不能对属性进行赋值,因为name是a中的一个属性,且它为只读的 string b = a.name.ToString(); int c = a.age; Console.WriteLine(b); Console.WriteLine(c); Console.Read(); } } }
匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型。类型名由编译器生成,并且不能在源代码级使用。这些属性的类型由编译器推断。
匿名类型是由一个或多个公共只读属性组成的类类型。不允许包含其他种类的类成员(如方法或事件)。
匿名类型一般用于linq中的select子句中,比如
var productQuery =
from prod in products
select new { prod.Color, prod.Price };