将值添加到列表中 - NullPointerException C#

时间:2014-04-26 19:10:25

标签: c# list

我有一个课程,允许我按如下方式存储时间。

    class LockTime
{

    public int Start { get; set; }

    public int End {get; set; }

    public LockTime (int start, int end)
    {
        Start = start;
        End = end;

    }

}

在另一个类中,我声明了这个对象的列表。

private List<LockTime> listOfTimes;

我在第二课中有一个方法然后添加到此列表中。

LockTime theTime = new LockTime((pickerTimeStart.Value.Hour + pickerTimeStart.Value.Minute), (pickerTimeEnd.Value.Hour + pickerTimeEnd.Value.Minute));

listOfTimes.Add(theTime);

当它试图添加到列表时,它会抛出NullPointerException。在调试器中,它在Time变量中显示2个值。我不太明白为什么它会说NullPointer。

同样在我宣布listOfTimes的开始处,它带有下划线蓝色,表示该字段永远不会分配给任何内容,并且始终具有空值。

这个小问题让我疯狂,我只是完全错过了什么。请帮忙!

5 个答案:

答案 0 :(得分:6)

您需要初始化该字段,否则其默认值为null,因为List<T>是引用类型。

使用private List<LockTime> listOfTimes = new List<LockTime>();

答案 1 :(得分:4)

好像你没有分配列表对象。

可能会改变

private List<LockTime> listOfTimes;

为:

private List<LockTime> listOfTimes = new List<LockTime>();

答案 2 :(得分:2)

您声明了列表,但没有对其进行初始化,因此它当前指向null。

private List listOfTimes = new List();

答案 3 :(得分:2)

您声明但不初始化列表。因此,您尝试在基本上Add的内容上致电null

答案 4 :(得分:2)

您尚未初始化列表。你看到警告的地方就是这样的,

   private List<LockTime> listOfTimes = new List <LockTime>()