C#;无法通过引用将变量传递到通用链表中

C#; having trouble passing a variable by reference into a generic linked list

我有一个项目,我需要修改提供的代码以使用通用链表做各种事情。我的问题是我无法将变量值设为列表中的节点。我不断收到 NullReferenceExceptions,不管我似乎没有空值这一事实。我会 post 一些代码以及它告诉我问题出现在哪几行。

    public static void Main(string[] args)
    {  
        UnorderedLinkedList<int> u = new UnorderedLinkedList<int>();

        Console.WriteLine("int");
        int var = 5;
        u.insert(ref var);
        var = 12;
        u.print();
        u.insert(ref var);
        var = 2;
        u.print();
        u.insert(ref var);
        var = 29;
        u.print();
        u.insert(ref var);
        var = 5;
        u.print();
        u.insert(ref var);
        u.print();
        var = 5;

    }

namespace LinkedListNamespace
{
public abstract class LinkedList<T>
{
    protected class Node
    { 
        public T value;
        public Node next;

    }

    protected Node start = new Node();


 public LinkedList()
    {
        start = null;  //getting an exception from this line.
    }

}
 public class UnorderedLinkedList<T> : LinkedList<T>, LinkedListADT<T>
{
 public override void insert(ref T item)
    {
        if (start == null)
        {

            start.value = item; //getting an exception from this line as well.
        }
        else
        {
            Node temp;
            for (temp = start; temp.next != null; temp = temp.next)
            {
                temp.next.value = item;
            }
        }
    }  
}      

如果有帮助,我可以从项目中提供更多代码。

谦虚建议你不明白ref是做什么的。它肯定给人一种误导API。你有 5 行说

u.Insert(参考变量);

这种使用 'ref' 的 API 设计会让调用者相信这些都是在列表中插入相同的引用,即对名为 var 的变量的引用。在两者之间更改 var 的值是无关紧要的。

空引用异常来自

start.value = 项目;

应该很明显,因为该行仅在 'start' 为空时才执行。以防万一它不明显:如果 "start" 为 null,则不能在其上设置属性或调用方法(这就是空引用异常)。

编辑添加: 此外,你将不得不给我们更多的线索,而不仅仅是说...

开始=空; //从这一行获取异常。

有什么例外?