我有以下代码:
class Album
{
private string name;
private Music[] musics;
private const int MAX_MUSICS = 100;
private ListViewItem[] back;
public ListViewItem[] GetTitles()
{
for (int i = 0; i < MAX_MUSICS; i++)
if (musics[i].Title != null)
back[i] = new ListViewItem(musics[i].Title);
return back;
}
}
在back[i] = new ListViewItem(musics[i].Title)
行,我得到NullReferenceException
。
我不知道为什么,因为在debuger音乐[i] .Title有一个价值,甚至检查。
答案 0 :(得分:0)
在向元素输入元素之前,你需要知道“后”元素有多少元素,例如
public ListViewItem[] GetTitles()
{
back = new ListViewItem[MAX_MUSICS]; // initialize array
for (int i = 0; i < MAX_MUSICS; i++)
if (musics[i].Title != null)
back[i] = new ListViewItem(musics[i].Title);
return back;
}
还要确保你的MAX_MUSICS不大于音乐数组的大小,否则你会遇到另一个异常