14 浅拷贝月深拷贝
无论是浅拷贝还是深拷贝,微软建议用类型继承ICloneable接口的方式明确告诉调用者:该类型可以被拷贝。
class Employee : ICloneable { public string IDCode { get; set; } public int Age { get; set; } public Department Department { get; set; } public object Clone() { return MemberwiseClone(); } public Employee DeepClone() { using(Stream objectStream = new MemoryStream()) { IFormatter formatter = new BinaryFormatter(); formatter.Serialize(objectStream, this); objectStream.Seek(0, SeekOrigin.Begin); return formatter.Deserialize(objectStream) as Employee; } } public Employee ShallowClone() { return Clone() as Employee; } } class Department { public string Name { get; set; } public override string ToString() { return Name; } }
Stay hungry, stay foolish

浙公网安备 33010602011771号