Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Помогите с классами в C#

Ответить
Настройки темы
.NET - [решено] Помогите с классами в C#

Аватара для SmallGod

Пользователь


Автор проектов


Сообщения: 76
Благодарности: 9


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: SmallGod
Дата: 27-04-2010
Допустим есть у меня сложный класс FInfo.

FInfo info = new FInfo();
FInfo x;

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

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

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

Отправлено: 22:20, 26-04-2010

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


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

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 00:53, 27-04-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для SmallGod

Пользователь


Автор проектов


Сообщения: 76
Благодарности: 9

Профиль | Отправить PM | Цитировать


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

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

Последний раз редактировалось SmallGod, 27-04-2010 в 02:37.


Отправлено: 02:26, 27-04-2010 | #3


Аватара для EvgeniyQQQ

Пользователь


Сообщения: 133
Благодарности: 21

Профиль | Сайт | Отправить PM | Цитировать


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

-------
"Не соглашайся ни на что, кроме совершенства!" - Анонимный автор.
"Совершенство достигается только к моменту полного краха." - К.Н.Паркинсон.


Отправлено: 09:54, 27-04-2010 | #4


Пользователь


Сообщения: 74
Благодарности: 5

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 10:09, 27-04-2010 | #5


Аватара для SmallGod

Пользователь


Автор проектов


Сообщения: 76
Благодарности: 9

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 12:07, 27-04-2010 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Помогите с классами в C#

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено




 
Переход