Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Ошибка при обращении к элементу массива

#c_sharp #массивы #исключения


При запуске программы

class Program
{
    static void Main()
    {
        string[] listNames = new string[4] { "Личный", "Рабочий", "Семейный", "Список
книг" };
        TodoList[] TodoLists = new TodoList[listNames.Length];
        for (int i = 0; i < TodoLists.Length; i++)
        {
            TodoLists[i].name = listNames[i];
        }
    }
}

class TodoList
{
    public string name;
    public string[] tasks;
}


получаю ошибку


  Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object.
     at dz.Program.Main(String[] args) in C:\Users\Yuri\source\repos\dz\dz\Program.cs:line 15

    


Ответы

Ответ 1



TodoList[] TodoLists = new TodoList[listNames.Length] лишь создаёт массив на listNames.Length элементов, в каждой ячейке которого лежит null. Вам сначала нужно проинициализировать элементы массива, чтобы с ними работать. TodoList[] TodoLists = new TodoList[listNames.Length]; for (int i = 0; i < TodoLists.Length; i++) { TodoLists[i] = new TodoList(); TodoLists[i].name = listNames[i]; }

Ответ 2



for (int i = 0; i < TodoLists.Length; i++) { TodoLists[i] = new TodoList() { name = listNames[i] }; }

Комментариев нет:

Отправить комментарий