2

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

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

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

4

2 回答 2

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 };
于 2013-07-12T22:21:14.023 回答
1

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

这里有更多文档。

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

于 2013-07-12T22:20:19.090 回答