.NET 4.x Сделать копию класса - C#

Узнай цену своей работы

Формулировка задачи:

Есть Class_test a и есть Class_test b Как сделать копию a и положить ее в b, НО чтобы я дальше мог работать с b, при этом чтобы a не изменялось никак, тоесть нужно не ссылки копировать а полностью. a=b; не катит. Желатьльно пример с маломальским рабочим кодом.

Решение задачи: «.NET 4.x Сделать копию класса»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace CopyData
  4. {
  5.     class Program
  6.     {
  7.  
  8.         static void Main(string[] args)
  9.         {
  10.             Data d1 = new Data(10, new SubData(20, 30));
  11.             Data d2 = new Data(d1);
  12.             d2.X = 101;
  13.             d2.subData.F1 = 111;
  14.             d2.subData.F2 = 222;
  15.             Console.WriteLine(d1);
  16.             Console.WriteLine(d2);
  17.             Console.ReadKey();
  18.         }
  19.  
  20.     }
  21.  
  22.     class Data
  23.     {
  24.         public int X { set; get; }
  25.         public SubData subData { set; get; }
  26.         public Data(int x, SubData subData)
  27.         {
  28.             X = x;
  29.             this.subData = subData;
  30.         }
  31.  
  32.         public Data(Data data) // конструктор копирования
  33.         {
  34.             X = data.X;
  35.             subData = new SubData(data.subData);
  36.         }
  37.         public override string ToString()
  38.         {
  39.             return string.Format("{0} {1} {2}", X, subData.F1, subData.F2);
  40.         }
  41.     }
  42.  
  43.     class SubData
  44.     {
  45.         public int F1 { set; get; }
  46.         public int F2 { set; get; }
  47.         public SubData(int f1, int f2)
  48.         {
  49.             F1 = f1;
  50.             F2 = f2;
  51.         }
  52.         public SubData(SubData subData) //конструктор копирования
  53.         {
  54.             F1 = subData.F1;
  55.             F2 = subData.F2;
  56.         }
  57.     }
  58. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут