为什么FirstNode.GetType()返回XElement而不是XNode

问题描述 投票:1回答:2

c#文档说FirstNode属性返回一个XNode。

public System.Xml.Linq.XNode FirstNode { get; }

但是当我在其上调用GetType()方法时,它显示为System.Xml.Linq.XElement

例如..

var MyElement = new XElement("Base",
                new XElement("FirstName", "John",
                    new XComment("Thats a cool name")),
                new XElement("LastName", "Doe")
            );

Console.WriteLine(MyElement.FirstNode.GetType());//System.Xml.Linq.XElement

此外,它没有像属性XElements本身一样适用于FirstNode的方法。有人可以解释发生了什么。

c# types linq-to-xml
2个回答
0
投票

根据docs,XElement继承自XNode。 FirstNode可以是从XNode继承的任何东西。


0
投票

因为XElementXNode的后代,并且在这种情况下First返回的节点是XElement

来自文档的类型层次结构:

Object -> XObject -> XNode -> XContainer -> XElement
© www.soinside.com 2019 - 2024. All rights reserved.