Как создать массив объектов класса и обращаться к их методам? C# [дубликат]

121
07 января 2021, 21:30
На этот вопрос уже даны ответы здесь:
Что такое NullReferenceException, и как мне исправить код? (2 ответа)
Закрыт 1 год назад.

Вопрос такой, есть у меня массив из объектов класса, например, MyClass:

MyClass[] arr = new MyClass[5];

И вот есть в этом классе метод Info. И мне нужно обратиться к нему через какой-нибудь элемент массива так:

arr[0].Info();

Но компилятор выдаёт ошибку "Ссылка на объект не указывает на экземпляр объекта". И как мне быть? Подскажите, какие варианты обхода этой ошибки есть. Мне нужен именно массив объектов.

Answer 1

Проьблема с созданием массива рещается так

arr[0] = new MyClass(); 
arr[0].Info();

создать массив - это как купить гостиницу без жильцов. Место есть, а жильцов нет. Чтобы они там появились, надо их туда поселить. Вот я в примере выше в комнату номер 0 поселил экземпляр класса MyClass, а потом уже обратился к нему по номеру комнаты и вызвал метод Info()

Проблема с инициализацией поля так

public class MyClass
{
    public double[] weights { get; set; } = new double[10];
}

Или так

public class MyClass
{
    public double[] weights { get; set;}
    public MyClass()
    {
        weights = new double[10];
    }
}

Где вместо 10 указываете нужное вам количество.

READ ALSO
C# MSSQL Что необходимо для запуска?

C# MSSQL Что необходимо для запуска?

Создал проект windows forms сNET v4

118
Сравнение двух одинаковых изображений

Сравнение двух одинаковых изображений

Всем добрый вечерЕсть 2 одинаковых фотографии с некоторым объектом

109
Изменение ячейки с помощью combobox в datagridview

Изменение ячейки с помощью combobox в datagridview

Есть код по заполнению таблицыНо никак не разберусь как заставить изменять значение в столбце "Код поставщика" при изменении значения в combobox...

114