新[]意味着什么

时间:2014-12-22 08:41:54

标签: c#

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

new []在这做什么。谢谢。

var headers = _doc.GetElementsByTagName("Header");
var header = headers[0];

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

5 个答案:

答案 0 :(得分:7)

它是implicitly typed array creation expression - 它允许编译器推断数组类型,有点像使用var但是对于数组。所以在你的情况下,它等同于:

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

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

var people = new[]
{
    new { Name = "Jon", Home = "Reading" },
    new { Name = "Gareth", Home = "Cambridge" }    
};

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

答案 1 :(得分:2)

它添加了一个带有标题内容的新数组。

答案 2 :(得分:1)

它只是用于创建新数组。由于您使用集合初始值设定项,因此编译器知道headers[0]

中的类型

答案 3 :(得分:1)

您分配了一个新阵列。编译器决定使用哪种类型。

答案 4 :(得分:1)

new [] {header}只是创建一个新的数组实例。数组要存储的项类型是头对象的类型。没有必要定义例如:new string [] {“some string”},一个简单的new [] {“some string”}就足以创建一个String类型的数组实例。