Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Помогите с классами в C# (http://forum.oszone.net/showthread.php?t=174171)

SmallGod 26-04-2010 22:20 1401342

Помогите с классами в C#
 
Допустим есть у меня сложный класс FInfo.

FInfo info = new FInfo();
FInfo x;

x = info; // так получается что в х ссылка таже что в info

А как создать "x" со значениями к-ые уже есть в "info"?
Т.е. что бы при работе с "x" не менялось значение в "info".
Или скажем "x" присвоить все значения "info".

Наверное придётся прописывать копирование почленно...

Delirium 27-04-2010 00:53 1401440

Не совсем понятна суть проводимой операции. Логичный вопрос: А зачем?

SmallGod 27-04-2010 02:26 1401472

Что значит для чего? Для копирования. ;)
Пока лучший способ к-ый нашёл это через сериализацию (для сложного класса).

Здесь есть пример, но он более трудоёмкий, чем хотелось бы:
http://msdn.microsoft.com/ru-ru/library/ms173116.aspx

EvgeniyQQQ 27-04-2010 09:54 1401560

SmallGod, можно использовать клонирование, реализовав в вашем классе интерфейс ICloneable путём добавления к нему метода Clone().
Вот ссылка на эту тему:
Клонирование и интерфейс ICloneable.

Awejk 27-04-2010 10:09 1401576

Не знаю как в С# но в С++ можно это сделать двумя известными и хорошо практикуемыми способами
1. через конструктор копирования
2. переопределить оператор = который будет возвращать не ссылку на объект а новый созданный объект со всеми значениями старого объекта.

Уверен что такие подходы можно будет реализовать и в С#. Ну и плюс ещё те способы которые изложили выше. Так что выбирайте :)

SmallGod 27-04-2010 12:07 1401665

EvgeniyQQQ Да, я про это знаю, но этот метод мне не подойдёт.
Решил всё таки, что буду делать как на msdn (так надёжнее и более точно прописать можно)

Всем спасибо. Тема закрыта.


Время: 22:04.

Время: 22:04.
© OSzone.net 2001-