@se271196

Как создать массив списков через классы C#?

Добрый день. По задумке у меня массив(map), в каждой ячейке может находиться множество значений с которыми мне нужно будет работать. Решил реализовать через классы.
class map
    {       
        public  Coordinates[,] Coor;
        //параметры карты
        public int n; 
        public int m;
        public   map(int n) { this.Coor = new Coordinates[n, n];
            this.n = n; this.m = n;
        }
        public map(int n, int m) { this.Coor = new Coordinates[n, m]; this.n = n; this.m = m; }
    }
class Coordinates
    {
        public   List<int> Type=new List<int>();
    }

map Map = new map(2);
Map.Coor[1,1].Type.Add(1);
Map.Coor[1,1].Type.Add(2);
Map.Coor[0, 0].Type.Add(2);
Console.WriteLine("count "+Map.Coor[1, 1].Type.Count);

при выполнении получаю ошибку "Object reference not set to an instance of an object." перепробовал много комбинаций, но не знаю как исправить. кто знает решение?
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Вы создали пустой массив Coor под элементы. Но самих элементов у вас там нет. Надо new Coordinates делать на весь массив, каждый элемент. И научитесь пользоваться отладкой своего кода.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Как искать причины подобных подобных ошибок:
  • Ставим точку останова на строку с ошибкой
  • Смотрим что там со значениями переменных

В вашем случае:
6051b0621d2aa442080624.jpeg
Мы видим что все элементы Coor равны null.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы