11 июля 2010

Копирование класса

Напишите класс по имени MyCopyableClass, способный возвращать копию
самого себя за счет применения метода GetCopy. Этот метод должен
обязательно использовать метод MemberwiseClone, унаследованный от System.Object.
Добавьте в этот класс простое свойство и напишите использующий этот класс
клиентский код, удостоверившись в том, что он работает.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        class MyCoypableClass
        {
            public MyCopyableClass GetCopy()
            {
                MyCopableClass p = (MyCopyableClass)this.MemberwiseClone();
                return p;
            }
            public int Version = 1;
        }
        static void Main(string[] args)
        {
            MyCopyableClass testing = new MyCopyableClass();
            MyCopyableClass testing2 = new MyCopyableClass();
            Console.WriteLine("Выводими свойство до изменения для класса testing = {0}.",testing.Version);
            Console.WriteLine("Выводими свойство до изменения для класса testing2 = {0}.", testing2.Version);
            Console.WriteLine("Присваиваем testing.Version значение \"2\".");
            testing.Version = 2;
            testing2 = testing.GetCopy();
            Console.WriteLine("Новое значение testing.Version = {0}.", testing.Version);
            Console.WriteLine("Копируем свойство из testing в testing2 с помощью метода GetCopy.");
            Console.WriteLine("Новое значение testing2.Version = {0}.", testing2.Version);

            Console.ReadKey();
        }
    }
}

Комментариев нет: