这是我在使用一些旧的vb代码时注意到的。 这一行不会抛出任何类型的强制转换异常......
Dim moduleElement As XmlElement = xmldoc.SelectSingleNode("/modules/module")
但这一行将在C#...
XmlElement focusFieldsNode = moduleNode.SelectSingleNode("ui/initial_focus_fields");
现在要解决这个问题,我将其转换为XmlElement,但是为什么它会在vb中运行而不是在C#中运行?
答案 0 :(得分:1)
看看它们的来源:
XmlElement
继承自XmlLinkedNode
继承的XmlNode
。
所以他们来自同一类型。 Casting将为您提供来自特定派生类的额外功能。