我在C#中偶然发现了这种奇怪的语法形式,并试图找出它的含义以及如何使用它。网上似乎没有任何关于此的文件。
object data = new { var1 = someValue, var2 = anotherValue }
这种语法没有错误,所以我认为它是C#允许的。这是什么意思?
答案 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。
您不能将匿名类型用作返回类型,也不能使用一个匿名类型声明成员字段。您不能在任何地方使用提供类型名称,因为它没有。>