如何在c#中处理参数?

时间:2015-10-05 11:38:07

标签: c#

我刚开始再次使用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;
            }
}

0 个答案:

没有答案