如何解决链接列表 - 对象引用未设置为对象实例
public void add(string title,string director,int year,double cost)
{
Node newNode = new Node();
newNode.disc = new BluRaydisc(title,director,year,cost);
Node holder = new Node();
holder = first;
while (holder.next != null) //object reference error
{
holder = holder.next;
}
holder.next = newNode;
}
但我收到“System.NullReferenceException:'对象引用未设置为对象的实例。'”错误抛出。
'first' 节点被初始化为 null,所以我假设这就是我的问题的来源。 这是我的第一个链表,它遵循我给出的 addToBack 方法的示例。有没有人对这个问题有一些见解?
解决方法
正如您所提到的,问题在于变量“first”被初始化为 null。它应该设置为您正在构建的链表的第一个节点。
,一些问题:
-
first
可以是null
,当您以空链表开始时就是这种情况,在这种情况下first.next
是无效引用。 -
关于:
丢弃该节点Node holder = new Node();
。这里没有必要用new Node()
创建一个新节点,因为在下一个语句中,你将通过执行holder = first;
这里是更正:
public void add(string title,string director,int year,double cost)
{
Node newNode = new Node();
newNode.disc = new BluRayDisc(title,director,year,cost);
if (first == null) {
first = newNode;
return;
}
holder = first;
while (holder.next != null) //object reference error
{
holder = holder.next;
}
holder.next = newNode;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。