匿名类型,不具有名称的类型。
当只需要临时的使用一个类型表达一些信息,这个类只需要保存一些只读的信息,并不需要任何方法、事件时,可以考虑使用匿名类型。可大大减少代码量。
eg:
var myBook=new { BookName="c# 4.0 程序设计", ISBN="0000010", Price=69 };
发现了吗?匿名类型,其实就是 隐式声明 和 对象初始化器 技术的组合。
限制:
1、匿名类型必须使用Var进行隐式声明,且只能包含公共的属性,不能包含方法、事件。
2、两个匿名类型,可通过Equals方法进行相等值的比较。
var book1=new {BookName="asp.net 4.0",ISBN="0000010",Price=69}; var book2=new {BookName="asp.net 4.0",ISBN="0000010",Price=69}; bool isEquals1=Book1.Equals(Book2); //结果为True bool isEquals2=(Book1==Book2); //结果为False
用Equals会依顺序比较每个成员的值。而用==操作符时,是对两个引用类型进行比较。