ребят. Мне нужно создать массив класса LaneData, в котором уже вложен массив CarData. Пока что я попытался решить проблему, задав массив car (см ниже), что конечно очень криво и размер массива 99999 задан весьма неверно.
public class LaneData
{
public int amount = 0;
public int overall = 0;
public class CarData
{
public int speed;
public int pos;
public int time = 0;
}
public CarData[] car = new CarData[99999];
}
в самом методе я задаю массив класса LaneData следующим образом
Program.LaneData[] lane = new LaneData[lanes];
for (int i = 0; i < lanes; i++)
lane[i] = new LaneData();
в общем-то, массив класса LaneData создается, однако ни о каком вызове вложенного массива car[] не идет и речи. Вот отрывок из кода, где я вызываю элемент массива car[]:
for (int l = 0; l < lanes; l ++)
{
if (toAppear)
{
lane[l].amount ++;
lane[l].overall ++;
lane[l].car[lane[l].overall].speed = maxSpeed;
lane[l].car[lane[l].overall].pos = roadLength;
}
}
Собственно, на строке
lane[l].car[lane[l].overall].speed = maxSpeed;
выдается ошибка
[System.NullReferenceException: Object reference not set to an instance of an object.]
хотя lane[l].overall не выходит за рамки заданного мной размера в 99999 (вообще на момент ошибки это число равно 1).
Помогите, пожалуйста, задать массив класса CarData в массиве класса LaneData, а также сделать размер этого массива адекватным (в идеале должен зависеть от числа, задаваемого пользователем или вообще расширяться по мере необходимости в коде), а не непонятный 99999. Спасибо всем за помощь!
lane[l].car[lane[l].overall] == null– Андрей NOP Oct 05 '18 at 08:20public CarData[] car = new CarData[99999];создает массив из 99999nullов – Андрей NOP Oct 05 '18 at 08:20public List<int,CarData> car = new List<int,CarData>();и не надо никаких лишних телодвижений :) – NewView Oct 05 '18 at 09:04