![]() |
Помогите с классами в C#
Допустим есть у меня сложный класс FInfo.
FInfo info = new FInfo(); FInfo x; x = info; // так получается что в х ссылка таже что в info А как создать "x" со значениями к-ые уже есть в "info"? Т.е. что бы при работе с "x" не менялось значение в "info". Или скажем "x" присвоить все значения "info". Наверное придётся прописывать копирование почленно... |
Не совсем понятна суть проводимой операции. Логичный вопрос: А зачем?
|
Что значит для чего? Для копирования. ;)
Пока лучший способ к-ый нашёл это через сериализацию (для сложного класса). Здесь есть пример, но он более трудоёмкий, чем хотелось бы: http://msdn.microsoft.com/ru-ru/library/ms173116.aspx |
SmallGod, можно использовать клонирование, реализовав в вашем классе интерфейс ICloneable путём добавления к нему метода Clone().
Вот ссылка на эту тему: Клонирование и интерфейс ICloneable. |
Не знаю как в С# но в С++ можно это сделать двумя известными и хорошо практикуемыми способами
1. через конструктор копирования 2. переопределить оператор = который будет возвращать не ссылку на объект а новый созданный объект со всеми значениями старого объекта. Уверен что такие подходы можно будет реализовать и в С#. Ну и плюс ещё те способы которые изложили выше. Так что выбирайте :) |
EvgeniyQQQ Да, я про это знаю, но этот метод мне не подойдёт.
Решил всё таки, что буду делать как на msdn (так надёжнее и более точно прописать можно) Всем спасибо. Тема закрыта. |
Время: 22:04. |
Время: 22:04.
© OSzone.net 2001-