【问题标题】:What does new [] mean [duplicate]新的[]是什么意思[重复]
【发布时间】:2015-02-20 08:19:54
【问题描述】:

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

new [] 在这里做什么。提前致谢。

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

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

【问题讨论】:

标签: c#


【解决方案1】:

这是一个implicitly typed array creation expression - 它让编译器推断数组类型,有点像使用var,但用于数组。所以在你的情况下,它相当于:

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

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

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

你不能把它写成显式类型的数组创建表达式,因为数组元素的类型没有名字。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      它只是用于创建一个新数组。由于您使用集合初始值设定项,编译器知道来自headers[0] 的类型

      【讨论】:

      • 非常感谢您的快速回复
      【解决方案4】:

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

      【讨论】:

      • 非常感谢您的快速回复
      【解决方案5】:

      new [] {header} 只是创建一个数组的新实例。数组即将存储的项目类型是标头对象的类型。例如不需要定义:new string[] { "some string" },一个简单的 new[] { "some string" } 就足以创建一个String类型的数组实例。

      【讨论】:

      • 非常感谢您的快速回复
      猜你喜欢
      • 2023-04-10
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 2018-09-28
      相关资源
      最近更新 更多