![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Garcian |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.11.2008 Репутация: нет Всего: нет |
Здравствуйте! Читал по этому вопросу различные темки и, честно говоря, ничего не понял.
Думаю проблема ясна: имеется список, содержащий собственный класс, ну например
Пробовал следующие способы для копирования содержимого списка:
В обоих случаях при изменении списка _Inside меняется и содержимое списка Lines. Как этого избежать? Хотелось бы с примером ![]() --------------------
Неродивый студент |
||||
|
|||||
YurIOs |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 28.6.2011 Где: Ukraine Репутация: 1 Всего: 1 |
Это довольно тривиальная задача. Вы ожидаете что ссылочный тип будет вести себя как простой тип (int, byte, bool и. т. д.)
В примере кода вы копируете не сами сущности LineSection, а только ссылки на них. Переопределите метод Clone() для класса LineSection. Тогда сможете получить копию списка где-то таким образом:
Это сообщение отредактировал(а) YurIOs - 17.3.2012, 19:16 |
|||
|
||||
Garcian |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.11.2008 Репутация: нет Всего: нет |
Да, это я понял. А вот здесь, можно по подробнее? --------------------
Неродивый студент |
|||
|
||||
YurIOs |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 28.6.2011 Где: Ukraine Репутация: 1 Всего: 1 |
Ну где-то так:
Это сообщение отредактировал(а) YurIOs - 17.3.2012, 20:42 |
|||
|
||||
Garcian |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 5.11.2008 Репутация: нет Всего: нет |
Спасибо, разобрался, все работает
![]()
Единственное что, убрал наследование, только потом заработало)
Это сообщение отредактировал(а) Garcian - 17.3.2012, 21:16 --------------------
Неродивый студент |
||||
|
|||||
YurIOs |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 28.6.2011 Где: Ukraine Репутация: 1 Всего: 1 |
Метод Clone() входит в состав интерфейса LineSection, технология клонирования может работать и без наследования от интерфейса ICloneable. Но чтобы LineSection гармоничней вписывался в .Net наследование от ICloneable лучше оставить
![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |