Массив, возвращающий одинаковые значения для всех индексов - PullRequest
2 голосов
/ 07 декабря 2010

Я создал объект под названием Участник. Теперь я хочу иметь массив своих объектов-участников, чтобы я мог показать их в сетке данных.

Вот коды, которые я пробовал (для лучшего понимания проблемы я удалил циклы и коды сетки данных):

Participant[] list = new Participant[count];
Participant one = new Participant(name, address);
Participant two = new Participant(name2, address2);

list[0] = one;
list[1] = two;

Однако, когда я получаю значения одного участника, например, через окно сообщения,

MessageBox.Show(list[0].getName());

все, что он отражает, - это данные участника два. То же самое верно, если у меня есть 3 объекта, все, что он отражает, это данные, которые в последний раз были отправлены в массив.

Я знаю, что возможно иметь массив объектов, поэтому должно быть что-то, что я делаю неправильно. Или есть лучший способ сделать это?

Ответы [ 3 ]

5 голосов
/ 07 декабря 2010

При представленном коде я могу думать только о том, что поле backig (в Participant) было объявлено как «static».Если это так, удалите «static».

В противном случае;фактический код делает "new" для двух объектов?Или он перезаписывает объект после добавления его в массив?(что означает, что у вас есть один и тот же объект дважды в массиве).

Я ожидал бы, что ReferenceEquals(list[0], list[1]) будет ложным в нормальном мире - вы можете проверить это и сообщить нам?

Finalдумал;есть ли "foreach" в реальном коде?Это может быть печально известная проблема с ...

0 голосов
/ 07 декабря 2010

Отладка - недооцененный навык ... Установите точку останова на строке, где вы создаете массив, добавляете список в качестве часового механизма и расширяете его, чтобы видеть содержимое.Пройдите по своему коду и наведите курсор на параметры, пока вы создаете участников, чтобы увидеть передаваемые значения.Перешагните государственных деятелей, которые добавляют их в список, и проверьте в ваших часах, что правильный элемент и значения каждый раз находятся в массиве и что существующие значения не изменились.

0 голосов
/ 07 декабря 2010

Если вы используете цикл для заполнения массива, убедитесь, что вы используете индекс цикла в качестве индекса массива при назначении участника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...