![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| redrick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 547 Регистрация: 7.1.2004 Где: Москва Репутация: нет Всего: 5 |
Тема избитая, сам знаю, но все таки :
если у меня есть сложный объект с кучей полей, среди которых попадаются коллекции из объектов опять же с кучей полей и т.д. - какой есть способ создать его deep copy ? Serialization ? имплементировать для всех используемых классов clone() ? или в корне не верный подход ? (у меня есть объект обисывающий состояние системы - мне нужно отработать различные сценарии развития и потом сравнить результаты) спасибо -------------------- Имею Мнение Хрен Оспоришь |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
как сей термин на русском звучит? это то есть "полное копирование", противоположность "shallowed copy"? ыыы... а зачем тебе его надо реализовать? конкретнее... с помощью рефлексии нельзя перебирать все члены и копировать? |
|||
|
||||
| redrick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 547 Регистрация: 7.1.2004 Где: Москва Репутация: нет Всего: 5 |
Run-time error
ну я говорю - есть объект типа SystemState у него до кучи разных полей которые в процессе работы системы меняются. Вот я и хочу запустить систему в одном варианте - посмотреть что да как, затем в другом - и сравнить результаты, т.е. содержимое SystemState которые получаются в одном и в другом случае
оно самое -------------------- Имею Мнение Хрен Оспоришь |
|||
|
||||
| -ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 5 Всего: 13 |
THE ULTIMATE IN COPYING/CLONING OBJECTS!!!!
Create yourself a nice abstract base class, which includes the ICLONABLE interface. Then include this code below in your base class. Derive all of your domain objects from there. You could even try a nice abstract base collection class and also include this code below. Be creative, but always use this code on your base classes. Don't forget to make them SERIALIZABLE. This will clone datatables, arrays, custom collections, simple properties, hashtables... whatever you want. Why add code to all of your classes when this will do it all!
можешь еще здесь посмотреть http://www.codeproject.com/csharp/cloneimpl_class.asp -------------------- "Тонкая, однако, работа." |
|||
|
||||
| redrick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 547 Регистрация: 7.1.2004 Где: Москва Репутация: нет Всего: 5 |
вобщем понятно - всем спасибо - сериализация и точка.
-------------------- Имею Мнение Хрен Оспоришь |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Да в принципе можно реализовать свой способ размножения сколь угодно сложных объектов... Как я люблю повторять: тут всё дело в фантазии разработчика
-------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |