So, i ran into a strange problem today.
Let's say i have a TreeNode
defined like this:
TreeNode node = new TreeNode();
node.Nodes.Add(new TreeNode { Name = "aaa" });
node.Nodes.Add(new TreeNode { Name = "bbb" });
And then I call a recursive method
ColorNode(node.Nodes, Color.Green);
The method looks like this:
void ColorNode(TreeNodeCollection nodes, System.Drawing.Color Color)
{
foreach (var child in nodes)
{
child.ForeColor = Color;
if (child.Nodes != null && child.Nodes.Count > 0)
ColorNode(child.Nodes, Color);
}
}
In that foreach
loop if I keep var child
Visual Studio cries that
Object does not contain a definition for ForeColor and no extension method ForeColor accepting a first argument of type ojbect could be found.
object does not contain a definition for Nodes and no extension method Nodes accepting a first argument of type object could be found.
But if i change var child
with TreeNode child
everything works as expected.
Can someone explain this behaviour?