应该添加到列表开头的简单C#节点列表功能无法作为外部静态虚空工作

大家好,我写了有史以来最简单的代码,我尝试了两件事,我什至从网上复制,但我不明白为什么它不起作用......这是我的代码:


 public static void insertToStart(Node<T> list, T toAdd)

    {

        list = new Node<T>(toAdd, list);

    }

public static void insertToStart2(Node<T> list, T toAdd)

    {

        Node<T> list2 = new Node<T>(toAdd, list);

        list = list2;

    }

两者都不起作用,我也不知道为什么……这是主要代码:


Service<int>.insertToStart(list, 600); 

Service<int>.insertToStart2(list, 600);


偶然的你
浏览 114回答 1
1回答

紫衣仙女

之所以不起作用,是因为您试图将一个新Node<T>对象分配给list,该对象是通过值传递的参数。这样的修改仅在进行修改的方法中保持可见,但list对调用方中传递的变量没有影响。您可以解决此问题,例如,要求list通过引用传递,即标记list参数a ref:public static void insertToStart(ref Node<T> list, T toAdd){&nbsp; &nbsp; list = new Node<T>(toAdd, list);}但是,此解决方案并不理想。更好的方法是封装Node<T>在一个NodeList<T>类中,并将head存储为私有字段,这样您就完全不需要传递list。
打开App,查看更多内容
随时随地看视频慕课网APP