我刚开始再次使用c#,现在我的参数出现了一个奇怪的问题。 我试图自己建立一个List。 所以我有:
class NodeList
{
public Node FirstCity { get; set; }
public Node findNode(String name)
{
//...stuff
}
}
而且这个:
class Node
{
public String Name {get; set;}
public Node next {get; set;}
}
所以,在我的项目中我(假设点击按钮)创建一个新的Nodelist。 (默认情况下,我已经有几个节点。)
现在我这样做:
Node n = nodelist.findNode("test");
然后我有另一个叫做工具的课程。
tool.doSomething(n , nodelist);
现在奇怪的是,当我查看nodelist时,当我调用上面的列表时是正确的。 doSomething方法甚至不会调用节点列表,但它会更改它。
doSomething(n, list)
{
NodeList nl = new NodeList();
nl.Add(n);
//other stuff
}
在我因某种原因更改新列表时,另一个列表(也在不同的类别中)也会发生变化。
任何人都可以解释为什么以及如何解决这个问题!?
编辑: 这是我的添加方法:
Add(Node node){
node.next = null;
Node current = FirstCity;
if (current == null)
FirstCity = node;
else
{
while (current.next != null)
{
current = current.next;
}
current.next = node;
}
}