C#深度拷贝,浅拷贝

来源:互联网 发布:服装设计淘宝 编辑:程序博客网 时间:2024/03/29 06:23

使用序列化的方法实现深度拷贝非常方便

using System;using System.IO;using System.Runtime.Serialization;using System.Runtime.Serialization.Formatters.Binary;[Serializable]class Person : ICloneable{    public object Clone()    {        return this.MemberwiseClone();    }    public Person DeepClone()    {        using(Stream os = new MemoryStream())        {            IFormatter formatter = new BinaryFormatter();             formatter.Serialize(os, this);            os.Seek(0, SeekOrigin.Begin);            return formatter.Deserialize(os) as Person;        }    }    public Person ShallowClone()    {        return Clone() as Person;    }}