Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Копирование списка |
Автор: Garcian 17.3.2012, 19:04 | ||||
Здравствуйте! Читал по этому вопросу различные темки и, честно говоря, ничего не понял. Думаю проблема ясна: имеется список, содержащий собственный класс, ну например
Пробовал следующие способы для копирования содержимого списка:
В обоих случаях при изменении списка _Inside меняется и содержимое списка Lines. Как этого избежать? Хотелось бы с примером ![]() |
Автор: YurIOs 17.3.2012, 19:15 | ||
Это довольно тривиальная задача. Вы ожидаете что ссылочный тип будет вести себя как простой тип (int, byte, bool и. т. д.) В примере кода вы копируете не сами сущности LineSection, а только ссылки на них. Переопределите метод Clone() для класса LineSection. Тогда сможете получить копию списка где-то таким образом:
|
Автор: Garcian 17.3.2012, 19:34 | ||
Да, это я понял. А вот здесь, можно по подробнее? |
Автор: YurIOs 17.3.2012, 20:32 | ||
Ну где-то так:
|
Автор: Garcian 17.3.2012, 21:11 | ||||
Спасибо, разобрался, все работает ![]()
Единственное что, убрал наследование, только потом заработало)
|
Автор: YurIOs 17.3.2012, 21:34 |
Метод Clone() входит в состав интерфейса LineSection, технология клонирования может работать и без наследования от интерфейса ICloneable. Но чтобы LineSection гармоничней вписывался в .Net наследование от ICloneable лучше оставить ![]() |