链接列表不断出现未处理的异常

时间:2018-10-29 02:50:45

标签: c#

我不断收到未处理的异常

  

“对象引用未设置为对象的实例”

对于以下代码,特别是在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;
            }
        }
    }

1 个答案:

答案 0 :(得分:2)

您在temp子句中将temp.next设置为if,该子句检查temp.next是否为null。因此,您基本上将temp设置为null。因此,您会收到错误消息,因为您尝试从变量next而不是对象中获得null属性。

作为一个旁注,也许重新考虑一下变量的命名,以使它们不完全相同,因为这会很快使您感到困惑。