Sum*_*uma 4 c# foreach types var
让我们cls成为一个类型XmlNode
以下语句允许我访问子节点:
foreach (XmlNode child in cls.ChildNodes)
Run Code Online (Sandbox Code Playgroud)
现在当我尝试使用var:
foreach (var child in cls.ChildNodes)
Run Code Online (Sandbox Code Playgroud)
那么孩子的类型不是XmlNode,只有对象.我无法使用child.NodeType,编译器说:
object'不包含'NodeType的定义
为什么是这样?
ChildNodesXmlNodeList属于定义为的类型
public abstract class XmlNodeList : IEnumerable, IDisposable
Run Code Online (Sandbox Code Playgroud)
它的枚举器返回一个object.当您使用XmlNode而不是var.net自动casts对象时XmlNode.但是当你使用时var,孩子被视为一个对象.
| 归档时间: |
|
| 查看次数: |
395 次 |
| 最近记录: |