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())
{
    ...
}

LINQ到XML类型声明

这不会改变任何东西。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;

编译后varint取代,所以在执行时不会有更好的性能

在性能上没有区别,因为。net中的类型推断发生在编译时。所有的变量在编译后都是强类型的。

对于变量声明,也没有使用var或类型名的规则。这是个人喜好的问题。有些人喜欢看到他们使用的变量的类型,有些人认为类型声明是一种复制(不是foreach语句的大小写,而是简单的变量声明)。

当您使用匿名类型时,var的真正功能才会发挥出来(这就是引入它的原因)。你不能指定变量的类型名:

var people = from p in doc.Descendants("Person")
             select new { p.Name, p.Id };