如果我们使用 C#(LINQ to XML) 来循环播放小(<100kb) {中包含的节点{3}} 对象使用 XDocument 或标准隐含“<更好的做法或更好的性能strong> XElement “输入?
画报:
foreach (XElement el in node.Elements())
{
...
}
或
foreach (var el in node.Elements())
{
...
}
答案 0 :(得分:4)
这不会改变任何事情。 var
只是开发人员编写更短代码的简短形式。在您编写的情况下,编译时会重新调整为XElement
。
var
是强类型的!请不要理解var
就像PHP中的类型自由变量一样。
一个例子:
PHP
$i = 3;
$i = new MyObject();
//Everything is fine
C#
var i = 3;
i = new MyObject();
//compiler error!
所以
之间没有区别var i = 3;
和
int i = 3;
编译后var
完全被int
取代,因此在执行时没有更好的性能。
答案 1 :(得分:1)
性能没有区别,因为.NET中的类型推断发生在编译时。编译后所有变量都将被强类型化。
对于变量声明,使用var
或类型名称也没有规则。这是个人喜好的问题。有些人喜欢看他们使用的变量类型,有些人认为类型声明是重复的形式(不是foreach语句的情况,而是简单的变量声明)。
当您使用匿名类型时,var
的真正威力就会消失(这就是它被引入的原因)。您根本无法指定变量的类型名称:
var people = from p in doc.Descendants("Person")
select new { p.Name, p.Id };