为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
偶然的你 2021-05-04 10:20:05
大家好,我写了有史以来最简单的代码,我尝试了两件事,我什至从网上复制,但我不明白为什么它不起作用......这是我的代码: 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);
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

之所以不起作用,是因为您试图将一个新Node<T>对象分配给list,该对象是通过值传递的参数。这样的修改仅在进行修改的方法中保持可见,但list对调用方中传递的变量没有影响。


您可以解决此问题,例如,要求list通过引用传递,即标记list参数a ref:


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

{

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

}

但是,此解决方案并不理想。更好的方法是封装Node<T>在一个NodeList<T>类中,并将head存储为私有字段,这样您就完全不需要传递list。


查看完整回答
反对 回复 2021-05-29
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信