使用简单名称声明匿名类型成员

当您尝试编译时:

var car = new { "toyota", 5000 }; 

您将收到编译器错误“无效的匿名类型成员声明符。必须使用成员分配,简单名称或成员访问声明匿名类型成员。” 因为编译器无法从相应的表达式推断属性的名称。 这完全有道理。

令我好奇的是,错误消息暗示了三种声明类型成员的有效方法。 成员分配和成员访问是显而易见的:

 // member assignment var v = new { Amount = 108, Message = "Hello" }; // member access var productQuery = from prod in products select new { prod.Color, prod.Price }; 

简单名称声明的例子是什么?

谷歌搜索和SO上的相关问题仅导致成员分配成员访问的示例。

据我所知, simple name声明是这样的:

 var amount = 10; var whatever = "hello"; var newType = { amount, whatever } 

这将自动创建一个等于的匿名类型:

 var newType = { amount = amount, whatever = whatever }