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

时间:2014-10-27 15:25:26

标签: c# anonymous-types

当你尝试编译时:

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上的相关问题仅导致成员分配成员访问的示例。

1 个答案:

答案 0 :(得分:13)

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

var amount = 10;
var whatever = "hello";

var newType = { amount, whatever }

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

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