MemberwishClone学习

/*
 * Created by SharpDevelop.
 * User: My little flower basket
 * Date: 2013/7/12
 * Time: 9:37
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;

namespace Task2
{
	class MyCopyableClass
	{
		protected int myInt;
		
		public int ContainedInt
		{
			get
			{
				return myInt;
			}
			set
			{
				myInt = value;
			}
		}
		
		public MyCopyableClass GetCopy()
		{
			return (MyCopyableClass)MemberwiseClone();//如果这个类中有引用将会被改变,这是一个浅表复制 。所谓深度复制 ,就是当遇到引用时不是复制一个指针而是建立一个全新的对象
		}
	}
	
	
	class Program
	{
		public static void Main(string[] args)
		{
			MyCopyableClass obj1 = new MyCopyableClass();
			obj1.ContainedInt = 5;
			
			MyCopyableClass obj2 = obj1.GetCopy();
			obj1.ContainedInt = 9;
			
			Console.WriteLine(obj2.ContainedInt);
			
			Console.Write("Press any key to continue . . . ");
			Console.ReadKey(true);
			//
		}
	}
}

  

原文地址:https://www.cnblogs.com/deosky/p/3185781.html