黑马程序员技术交流社区

标题: 关于Object.MemberwiseClone方法的浅表副本与深层副本 [打印本页]

作者: 钱灿    时间: 2012-7-17 10:52
标题: 关于Object.MemberwiseClone方法的浅表副本与深层副本
可不可以举个例子解释!

作者: 许庭洲    时间: 2012-7-17 11:24
本帖最后由 许庭洲 于 2012-7-17 11:26 编辑

要实现浅复制,只需要调用Object类的MemberwiseClone方法即可;
class Test
{
    public int Id { get; set; }
    public List<int> Data;
    public Test():this(0)
    {   }
    public Test(int id)
    {
        this.Id = id;
        Data = new List<int>();
    }
    public Test Clone()
    {
        return this.MemberwiseClone() as Test;
    }
}
class Program
{
    static void Main(string[] args)
    {
        Test d1 = new Test(10);
        d1.Data.Add(1);
        Test d2 = d1.Clone();
        d2.Data.Add(2);
        foreach (int item in d1.Data)
        {
            Console.Write(item + " ");           
        }
        Console.WriteLine();
        foreach (int item in d2.Data)
        {
            Console.Write(item + " ");
        }
    }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2