![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| agealex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 2.9.2007 Репутация: нет Всего: нет |
Язык С# фреймворк 3.5
Имеется : 1 Класс - рукописный (другим человеком, динамически изменяемый, состоящий из множества классов), у него нет каких-либо функций его копирования встроеных, и я не могу ничего в нем менять. Нужно : Сделать его независимую копию ( для проверки наличия изменений в ходе работы) Вопрос как это сделать ? Сразу скажу что простым поочередным копированием всех переменных - вариант не подходит. Пока рассматриваю варианты с Сериализацией или через MemoryStrem, еслиесть идеи по лучше буду рад. Добавлено через 14 минут и 33 секунды Все вопрос решен, варианты решения - кому как: 1. Реализовать интерфейсу IClonable и явно вызывать Clone 2. Сделать конструктор копий 3. Переделать в структуру Ссылка на похожую тему с примерами |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 7 Всего: 306 |
еще не плох вариант с сериализацией.
что касательно переделать в структуру - то это очень спорный факт. |
|||
|
||||
| agealex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 2.9.2007 Репутация: нет Всего: нет |
еще есть вариант с MemberwiseClone MSDN ? что не требует ни каких дополнительных наследований и создает копию сех статических челенов класса.
Но к большому сожалению все эти методы, за исключением сериализации не позволили скопировать класс со множеством вложенных классов и списков вложенных классов в классы. Так как все равно требуют поочередной инициализации каждой интересующей переменной. В обещем да здравствует сериализация - медленно но эффективно! а насчет струткур - подходит для малых классов , если ну очень надо - так как они статичн Это сообщение отредактировал(а) agealex - 22.6.2011, 15:46 |
|||
|
||||
| ДобренькийПапаша |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: нет Всего: 7 |
Ну и так, кстати, если класс реализует ICloneable, то неплохо бы его декорировать собственным атрибутом, указывающим на то - происходит ли поверхностное или глубокое копирование.
В противном случае - плохой стиль. -------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |