Список, перезаписывающий данные по всем положениям [дубликат]

6
задан elvispt 30 April 2010 в 12:33
поделиться

1 ответ

Как выглядит ваш код для добавления двух объектов в список? Я предполагаю:

Gente professor = new Gente();
professor.Nome = "Fu";
Alunos.Add(professor);

professor.Nome = "Bar";
Alunos.Add(professor);

Что неверно. Когда вы добавляете ссылочные типы в список, вы добавляете только ссылку на исходный объект. В этом случае вы дважды добавляете две ссылки на один и тот же объект.

Следовательно, когда вы изменяете второй объект ... вы также изменяете первый.

Простым однострочным исправлением может быть повторная инициализация профессора перед его повторным использованием:

Gente professor = new Gente();
professor.Nome = "Fu";
Alunos.Add(professor);

professor = new Gente();
professor.Nome = "Bar";
Alunos.Add(professor);
13
ответ дан 8 December 2019 в 18:33
поделиться
Другие вопросы по тегам:

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