日期:2014-05-18  浏览次数:20812 次

关于TreeNode
首先我有一个TreeNode对象
C# code
TreeNode node;

请问一下为什么每次调用Nodes.Add()之前都要重新实例化对象,
C# code

         node=new TreeNode();
         node.Text="123";                    //...node重新赋值...
         Nodes.Add(node);


而不能直接重新赋值node,然后add


其次,想问一下如何判断Nodes里边是否存在一个节点
我本来想用Nodes.Contains() 但是好像不行..

------解决方案--------------------
那当然,因为你不创建新的TreeNode,你实际上在修改原来的那个。

即使它已经被添加。
------解决方案--------------------
Nodes.Contains() 只是判断当前Node下是存包含.....不能判断所有的,

可以进行一次中序遍历判断,不难的。
------解决方案--------------------
.NET 的类属于引用类型,相当于C语言的指针,如果不重新实例化,就一直指向原来的对象。
Nodes.Contains 必须给出对象的引用才行,如果只知道Node的Text,就必须进行遍历。