对象的浅复制于深复制

/*
 * 由SharpDevelop创建。
 * 用户: Changweihua
 * 日期: 2013/6/4
 * 时间: 16:33
 *
 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
 */
using System;
/// <summary>
/// 对象的浅复制于深复制
/// </summary>
namespace Chapter13_1
{
    class Program
    {
        public static void Main(string[] args)
        {
            //编程实现“深复制”
            //浅复制是.NET Framework 默认的对象复制方式,Object类提供了一个Memberwise方法浅复制一个对象
            //要实现深复制的对象,必须实现IClonable接口
               
            ClassA a1 = new ClassA();
            ClassA a2 = a1.Clone() as ClassA;
            a1.AValue = 1000;
            a1.EmbedObject.BValue = 2000;
            Console.WriteLine("{0} == {1}", a1.AValue, a2.AValue);
            Console.WriteLine("{0} == {1}", a1.EmbedObject.BValue, a2.EmbedObject.BValue);
            Console.ReadKey(true);
        }
           
    }
       
    class ClassA : ICloneable
    {
        public int AValue = 100;
        public ClassB EmbedObject = new ClassB();
        public Object Clone()
        {
            ClassA a = new ClassA();
            a.AValue = this.AValue;
            a.EmbedObject = (this.EmbedObject as ICloneable).Clone() as ClassB;
               
            return a;
        }
    }
    class ClassB : ICloneable
    {
        public int BValue = 200;
        Object ICloneable.Clone()
        {
            ClassB b = new ClassB();
            b.BValue = this.BValue;
               
            return b;
        }
    }
       
}


知识共享许可协议
《对象的浅复制于深复制》常伟华 创作。
采用 知识共享 署名-相同方式共享 3.0 中国大陆 许可协议进行许可。
  • 多说评论
  • 签名
  • 新浪微博
  • 默认评论
  • Tab Header 5

0 条评论 / 点击此处发表评论

Tab Content 5

开发技术


开发平台和工具

sitemap     165.71ms