您的位置:首页 > 编程语言 > C#

C#之深度复制和浅度复制

2008-09-11 00:27 246 查看
深度复制就是引用类型的复制

浅度复制是值类型的复制

例如:

using System;

using System.Collections.Generic;

using System.Text;

namespace Test

{

public class Content

{

public int val;

}

//此处若是深度复制才继承ICloneable接口

//public class Cloner : ICloneable

public class Cloner

{

public Content MyContent = new Content();

public Cloner(int newVal)

{

MyContent.val = newVal;

}

//浅度复制

//使用System.Object.MemberwiseClone()进行浅度复制,使用getCopy方法.

public object getCopy()

{

return MemberwiseClone();

}

//深度复制:

public object clone()

{

Cloner clonedCloner = new Cloner(MyContent.val); //此处是实例化一个对象

return clonedCloner;

}

}

}

//主函数

using System;

using System.Collections.Generic;

using System.Text;

namespace Test

{

class Program

{

static void Main(string[] args)

{

Cloner mySource = new Cloner(5);

Cloner myTarget = (Cloner)mySource.getCopy();//深度为cloner

Console.WriteLine("MyTarget.Mycontent.Val={}",myTarget.MyContent.val);

mySource.MyContent.val = 2;

Console.WriteLine("MyTarget.Mycontent.Val={}", myTarget.MyContent.val);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: