小问题【5】
匿名类型:
是又编译器动态生成的数据类型,而不是通过显式的定义来生命的。
示例代码:
static void Main() { var patent1 = new { Title = "p1 title", //不用也不能声明类型 Year = "1000" }; var patent2 = new { Title = "p2 title", //三个的类型是一样的 Year = "2000" }; var patent3 = new { patent1.Title, Year = patent1.Year }; Console.WriteLine(patent1.GetType()==patent2.GetType()); //True Console.WriteLine(patent1); //显示: { Title = "p1 title", Year = "2000" } Console.ReadKey(); }
IDE的“智能感知”功能可以正确支持匿名类型。
在没有明确指定名称的前提下,会默认使用字段或属性的名称,如patent3的Title。
一般情况下应该尽量避免使用匿名类型,甚至避免使用var来指定隐式类型的变量。