Показать полную графическую версию : [решено] Помогите с классами в C#
SmallGod
26-04-2010, 22:20
Допустим есть у меня сложный класс FInfo.
FInfo info = new FInfo();
FInfo x;
x = info; // так получается что в х ссылка таже что в info
А как создать "x" со значениями к-ые уже есть в "info"?
Т.е. что бы при работе с "x" не менялось значение в "info".
Или скажем "x" присвоить все значения "info".
Наверное придётся прописывать копирование почленно...
Delirium
27-04-2010, 00:53
Не совсем понятна суть проводимой операции. Логичный вопрос: А зачем?
SmallGod
27-04-2010, 02:26
Что значит для чего? Для копирования. ;)
Пока лучший способ к-ый нашёл это через сериализацию (для сложного класса).
Здесь есть пример, но он более трудоёмкий, чем хотелось бы:
http://msdn.microsoft.com/ru-ru/library/ms173116.aspx
EvgeniyQQQ
27-04-2010, 09:54
SmallGod, можно использовать клонирование, реализовав в вашем классе интерфейс ICloneable путём добавления к нему метода Clone().
Вот ссылка на эту тему:
Клонирование и интерфейс ICloneable. (http://www.intuit.ru/department/pl/csharp/19/5.html)
Не знаю как в С# но в С++ можно это сделать двумя известными и хорошо практикуемыми способами
1. через конструктор копирования
2. переопределить оператор = который будет возвращать не ссылку на объект а новый созданный объект со всеми значениями старого объекта.
Уверен что такие подходы можно будет реализовать и в С#. Ну и плюс ещё те способы которые изложили выше. Так что выбирайте :)
SmallGod
27-04-2010, 12:07
EvgeniyQQQ Да, я про это знаю, но этот метод мне не подойдёт.
Решил всё таки, что буду делать как на msdn (так надёжнее и более точно прописать можно)
Всем спасибо. Тема закрыта.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.