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

本文关键字:新的 意思 语法 是什么 | 更新日期: 2023-09-27 18:22:14

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

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

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

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

这是一个匿名类型。它将基本上像一个类一样工作:

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 };

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

这里有更多的文档。

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