0

我有以下代码:

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. 我不知道为什么,因为在调试器中 musics[i].Title 有一个值并且它甚至被检查过。

4

1 回答 1

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 不大于音乐数组的大小,否则你会遇到另一个异常

于 2013-04-05T20:01:15.220 回答