这个语法是什么意思?新{}

时间:2013-07-12 22:18:28

标签: c#

我在C#中偶然发现了这种奇怪的语法形式,并试图找出它的含义以及如何使用它。网上似乎没有任何关于此的文件。

object data = new { var1 = someValue, var2 = anotherValue }

这种语法没有错误,所以我认为它是C#允许的。这是什么意思?

2 个答案:

答案 0 :(得分:8)

这是一种匿名类型。它基本上就像一个类:

class anonymous
{
    public readonly type var1; // "type" is the type of somevalue
    public readonly type var2; // "type" is the type of anothervalue
}

实例化
var data = new anonymous { var1 = somevalue, var2 = anothervalue };

答案 1 :(得分:1)

该语法创建“匿名类型”的实例。它仍然是一个完全类型安全的静态类型对象,但您可以在创建它时添加所需的任何属性。

还有更多文档here

您不能将匿名类型用作返回类型,也不能使用一个匿名类型声明成员字段。您不能在任何地方使用提供类型名称,因为它没有。>