关于c#:new []是什么意思


What does new [] mean

本问题已经有最佳答案,请猛点这里访问。

有一个代码可以从XML中读取某些内容并将其加载到字典中。请找出下面的代码。我需要了解new [] {header}的作用。

埃多克斯一〔一〕在这里做什么?事先谢谢。

1
2
3
4
var headers = _doc.GetElementsByTagName("Header");
var header = headers[0];

_dict.Add("Header_" + headerId, new [] {header});


它是一个隐式类型化的数组创建表达式——它让编译器可以推断数组类型,有点像使用var,但对于数组。所以在你的例子中,它相当于:

1
_dict.Add("Header_" + headerId, new XmlNode[] { header });

它与var一起添加到C 3中,以支持匿名类型。例如,您可以编写:

1
2
3
4
5
var people = new[]
{
    new { Name ="Jon", Home ="Reading" },
    new { Name ="Gareth", Home ="Cambridge" }    
};

无法将其作为显式类型的数组创建表达式写入,因为数组元素的类型没有名称。


它添加了一个包含标题内容的新数组。


new[]header正在创建数组的新实例。数组将要存储的项的类型是头对象的类型。不需要定义例如:new string[]"some string",一个简单的new[]"some string"足以创建类型为string的数组实例。


您分配了一个新数组。编译器决定哪种类型。


它只是为了创建一个新的数组。因为使用了集合初始值设定项,所以编译器知道headers[0]中的类型。