.NET 4.x Сделать копию класса - C#
Формулировка задачи:
Есть Class_test a и есть Class_test b
Как сделать копию a и положить ее в b, НО чтобы я дальше мог работать с b, при этом чтобы a не изменялось никак, тоесть нужно не ссылки копировать а полностью.
a=b; не катит.
Желатьльно пример с маломальским рабочим кодом.
Решение задачи: «.NET 4.x Сделать копию класса»
textual
Листинг программы
- using System;
- namespace CopyData
- {
- class Program
- {
- static void Main(string[] args)
- {
- Data d1 = new Data(10, new SubData(20, 30));
- Data d2 = new Data(d1);
- d2.X = 101;
- d2.subData.F1 = 111;
- d2.subData.F2 = 222;
- Console.WriteLine(d1);
- Console.WriteLine(d2);
- Console.ReadKey();
- }
- }
- class Data
- {
- public int X { set; get; }
- public SubData subData { set; get; }
- public Data(int x, SubData subData)
- {
- X = x;
- this.subData = subData;
- }
- public Data(Data data) // конструктор копирования
- {
- X = data.X;
- subData = new SubData(data.subData);
- }
- public override string ToString()
- {
- return string.Format("{0} {1} {2}", X, subData.F1, subData.F2);
- }
- }
- class SubData
- {
- public int F1 { set; get; }
- public int F2 { set; get; }
- public SubData(int f1, int f2)
- {
- F1 = f1;
- F2 = f2;
- }
- public SubData(SubData subData) //конструктор копирования
- {
- F1 = subData.F1;
- F2 = subData.F2;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д