LINQ到XML类型声明
本文关键字:声明 类型 XML LINQ | 更新日期: 2023-09-27 18:10:31
如果我们使用 c# (LINQ to XML)来循环包含在小(<100kb) XDocument对象使用XElement或标准隐式"var"类型是更好的实践或更好的性能?
说明:
foreach (XElement el in node.Elements())
{
...
}
或
foreach (var el in node.Elements())
{
...
}
这不会改变任何东西。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
取代,所以在执行时不会有更好的性能
在性能上没有区别,因为。net中的类型推断发生在编译时。所有的变量在编译后都是强类型的。
对于变量声明,也没有使用var
或类型名的规则。这是个人喜好的问题。有些人喜欢看到他们使用的变量的类型,有些人认为类型声明是一种复制(不是foreach语句的大小写,而是简单的变量声明)。
当您使用匿名类型时,var
的真正功能才会发挥出来(这就是引入它的原因)。你不能指定变量的类型名:
var people = from p in doc.Descendants("Person")
select new { p.Name, p.Id };