Fra*_*Rem 12 c# anonymous-types
当您尝试编译时:
var car = new { "toyota", 5000 };
Run Code Online (Sandbox Code Playgroud)
您将收到编译器错误"无效的匿名类型成员声明符.必须使用成员分配,简单名称或成员访问声明匿名类型成员." 因为编译器无法从相应的表达式推断属性的名称.这完全有道理.
令我好奇的是,错误消息暗示了三种声明类型成员的有效方法.成员分配和成员访问是显而易见的:
// member assignment
var v = new { Amount = 108, Message = "Hello" };
// member access
var productQuery =
from prod in products
select new { prod.Color, prod.Price };
Run Code Online (Sandbox Code Playgroud)
用简单名称声明的例子是什么?
谷歌搜索和SO上的相关问题仅导致成员分配和成员访问的示例.
Han*_*ney 13
据我所知,simple name声明是这样的:
var amount = 10;
var whatever = "hello";
var newType = { amount, whatever }
Run Code Online (Sandbox Code Playgroud)
这将自动创建一个等于的匿名类型:
var newType = { amount = amount, whatever = whatever }
Run Code Online (Sandbox Code Playgroud)