向列表中添加值-NullPointerException C#
我有一个类,它允许我存储如下时间向列表中添加值-NullPointerException C#,c#,list,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<LockTim
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;
当它试图添加到列表时,抛出NullPointerException。在调试器中,它在时间变量中显示2个值。我不太明白它为什么说空指针
同样,在我声明listOfTimes的开始处,蓝色下划线表示该字段从未分配给任何对象,并且始终具有空值
这个小问题快把我逼疯了,我是不是完全错过了什么。请帮忙 您需要初始化字段,否则其默认值为null,因为
List
是引用类型
使用
私有列表listOfTimes=new List()代码>您声明了列表,但没有初始化它,因此它当前指向null
私有列表listOfTimes=新列表() 您声明但不初始化列表。因此,您试图在本质上为null
的对象上调用Add
,似乎您没有分配列表对象
也许会改变
private List<LockTime> listOfTimes;
私有时间列表;
致:
private List listOfTimes=new List();
您尚未初始化列表。你看到警告的地方是这样做的
private List<LockTime> listOfTimes = new List <LockTime>()
private List listOfTimes=新列表()
是否已初始化列表项
<代码>列表时间=新列表()代码>?可悲的是,我尝试了=新列表,但我缺少大括号。我已经浪费了将近2-3个小时来拔头发。谢谢你这么快的回复。@Jagga如果你忘记了括号,你会得到一个错误,比如“一个新的表达式需要(),[]或{}在类型之后”。你有什么不明白的?(不是对你的批评,我只是好奇你认为这是什么意思。当你懂一门语言时,很难看出别人是怎么误解的。)我一直在做..=新列表(0,0);等等。然后我开始将访问器从私有更改为公共,然后全部更改。我基本上做了很多不必要的改变,只是因为我不知道你能说什么或者可能记得我需要牙套。由于某种原因,我的大脑一直在运行,构造函数需要2个整数。我不知道。
private List<LockTime> listOfTimes = new List<LockTime>();
private List<LockTime> listOfTimes = new List <LockTime>()