我找到了一个使用XElement创建对象的示例:
XElement xml = new XElement("contacts",
new XElement("contact",
new XAttribute("contactId", "2"),
new XElement("firstName", "Barry"),
new XElement("lastName", "Gottshall")
)
);但是,只能使用对象数组创建XElement构造。
XElement(XName,Object[])
在这段代码中我没有看到任何数组初始化器。它怎麽工作?
发布于 2013-07-08 12:55:00
XElement构造函数的内容参数定义为params Object[]
public XElement(
XName name,
params Object[] content
)这意味着您可以在这里传递任何参数的任何数字。这正是你所发现的例子中所发生的事情。
在这段代码中我没有看到任何数组初始化器。它怎麽工作?
数组将被创建为通过编译器。如果您将拆解您的例子,您将看到
XElement xml = new XElement("contacts",
new XElement("contact", new object[] {
new XAttribute("contactId", "2"),
new XElement("firstName", "Barry"),
new XElement("lastName", "Gottshall")
})
);发布于 2013-07-08 13:14:15
上面的答案解决了这个谜团,但我只想提到,params关键字是一个强大的工具,可以接收从同一类型到一个方法的任意数量的参数。它必须是方法签名的最后一个参数,例如,我们一直在string.format中使用它。节省大量时间,使用方便。
https://stackoverflow.com/questions/17527141
复制相似问题