16 / 16 / 1
Регистрация: 23.08.2009
Сообщений: 55

Полное копирование объекта

24.08.2010, 19:01. Показов 27024. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возможно ли клонировать экземпляр класса, который не реализует интерфейс System.IClonable (не содержит метод Clone() )? Или нужно переписывать все нестатичиские поля вручную? Думал обойтись MemberwiseClone, но из документации понял что для ссылочных полей он копирует тоже ссылки а не значение самого поля.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.08.2010, 19:01
Ответы с готовыми решениями:

Копирование объекта
Есть два объекта object1 и object2. Что будет при выполнении операции object1 = object2? Все значения перенесутся копированием из...

Копирование объекта List<>
При изменении объекта D почему-то изменяется и объект _C. Подскажите, почему это происходит и как сделать независимую копию объекта...

Clipboard копирование сериализуемого объекта
bool s = IsSerializable(this); DataFormats.Format format = DataFormats.GetFormat(typeof(Client).FullName); ...

5
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
24.08.2010, 19:56
В классе обьект кторого ты хочешь комипровать -клонироват создай deep copy constructor
0
16 / 16 / 1
Регистрация: 23.08.2009
Сообщений: 55
24.08.2010, 20:18  [ТС]
У меня есть вот такое определение:
C#
1
Dictionary<string, Dictionary<string, LessonInfo>> week = new Dictionary<string, Dictionary<string, LessonInfo>>();
на каком-то этапе мне нужно скопировать один из элементов week и производить над ним операции, так что бы это не затрагивало сам элемент в week. То есть получается что мне надо клонировать объект Dictionary<string, LessonInfo>. как этого сделать я пока не знаю.
0
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
24.08.2010, 20:31
что такое deep copy constructor знаешь?
если нет то:
метод который копирует куждую переменную .таким образом изменяя копию оригинал не меняется.пример есть класс Car:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Car
{
 private string Model;
 private string Color;
 private int Engine;
 public Car(string model,string color,int engine)//Constructor
 {
    this.Model=model;
    this.Color=color;
    this.Engine=engine;
 }
 public Car(Car other)//Deep copy constructor
//Где other копируемый обьект this копия/клон
// таким образом этот конструктор создает копию обьекта присваивая копии новое мечто в памяти
//т.е. создается новый обьект с параметрами копирываемого обьекта
 {
     this.Model=other.Model;
     this.Color= other.Color;
     this.Engine=other.Engine;
 }
}
//----Клонирование происходит так
Car c=new Car("bmw","black",320);
Car clone=new Car(c);// c клонируется в clone;
2
16 / 16 / 1
Регистрация: 23.08.2009
Сообщений: 55
24.08.2010, 20:57  [ТС]
спасибо, будем пробовать

но что то не думаю что мне это подойдет. на сколько я понял deep copy constructor подразамевает что нужно дописать конструктор классе, в моем случае сделать этого нельзя (я же клонирую Dictionary). Разве что написать класс и унаследовать от Dictionary<string, ...>. Проще уже тогда поля вручную переписать
0
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
24.08.2010, 21:05
ну да , тогда нужно наследовать, тогда перепиши поля ручками))или реализуй интерфейс IClonable

Добавлено через 45 секунд
Только чем тебе наследование не угодило?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.08.2010, 21:05
Помогаю со студенческими работами здесь

Копирование определенного текста из файла, копирование и вставка в статичную переменную
Доброго вечера. Делаю программу которая бы выводила погоду на сегодня через данные сайта. Завис на передаче данных с сайта. Как можно...

Полное (побитовое) копирование объекта одной строчкой кода. не ссылки
Добрый день, подскажите пожалуйста, как быстро и безболезненно можно скопировать значения одного объекта в другой. Я создал класс и чтобы...

полное копирование ячейки
Можно ли скопировать ячейку полностью (включая содержимое и формат), минуя поэлементное копирование свойств ячейки?

Полное копирование таблицы
Добрый вечер. Прошу вашей помощи. Необходимо скопировать таблицу полностью, а именно: Все данные, с ключами с схемами. Вопрос...

Полное копирование TabPage
Добрый день, Товарищи! Механизм работы программы заключается в TabControl1 То есть всю работу мы осуществляем внутри различных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru