Por que var usado em foreach para XmlNode não deduz o tipo real, somente objeto?

Deixeicls seja do tipoXmlNode

A seguinte declaração me permite acessar nós filhos:

foreach (XmlNode child in cls.ChildNodes)

Agora quando tento usar var:

foreach (var child in cls.ChildNodes)

então o tipo de criança não éXmlNode, sóobjeto. Não posso usarchild.NodeType, o compilador diz:

objeto 'não contém uma definição para' NodeType

Por que é isso?

questionAnswers(2)

yourAnswerToTheQuestion