我不断收到未处理的异常
“对象引用未设置为对象的实例”
对于以下代码,特别是在temp.next = node
行上。谁能帮我找出原因?
下面的代码是鸟类的一个类,用户在其中输入名称,addBird
方法用于将名称添加到链接列表的末尾。
class BirdsSurve {
private Node first;
public class Node
{
public string Name { get; set; }
public int count { get; set; }
public Node next;
public Node()
{
this.count = 1;
}
public void setNext(Node Next)
{
next = Next;
}
public int addCount()
{
count++;
return count;
}
}
public BirdsSurvey()
{
this.first = null;
}
public void addBird(string bird)
{
Node node = new Node();
node.Name = bird;
if (first == null)
{ first = node; }
else
{
Node temp = first;
while (temp != null)
{
if (temp.Name == bird)
{ temp.addCount(); }
if (temp.next == null)
{
temp = temp.next;
temp.next = node; }
// temp = temp.next;
}
}
}
答案 0 :(得分:2)
您在temp
子句中将temp.next
设置为if
,该子句检查temp.next
是否为null
。因此,您基本上将temp
设置为null
。因此,您会收到错误消息,因为您尝试从变量next
而不是对象中获得null
属性。
作为一个旁注,也许重新考虑一下变量的命名,以使它们不完全相同,因为这会很快使您感到困惑。