匿名類型说庭,只有在屬性完全一致的情況下(包括屬性名稱然磷、類型、個(gè)數(shù)刊驴、順序的一致)姿搜,編譯器才會(huì)生成一個(gè)匿名類型,否則生成多個(gè)匿名類型捆憎。
舉個(gè)簡(jiǎn)單的例子舅柜,像下面這樣的代碼,C#編譯器生成1個(gè)匿名類型
var cid = new { Id = 1, Name = "C# in Depth, Third Edition", Price = 49.99 };
var clr = new { Id = 2,?Name = "CLR via C#, Fourth Edition", Price = 59.99 };
而像下面這樣的代碼攻礼,C#編譯器生成2個(gè)匿名類型
var cid = new { Id = 1, Name = "C# in Depth, Third?Edition", Price = 49.99 };
var clr = new { Name = "CLR via C#, Fourth Edition", Id = 2, Price = 59.99 };
我的想法:C#編譯器在編譯匿名類型時(shí)业踢,不應(yīng)該把“屬性順序”作為因素。比如上述代碼礁扮,人腦認(rèn)為是1個(gè)類型知举,可C#編譯器卻認(rèn)為是2個(gè)類型,而生成的2個(gè)類型是一模一樣的