看啥推荐读物
专栏名称: dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
今天看啥  ›  专栏  ›  dotNET跨平台

如何实现浅拷贝和深拷贝?

dotNET跨平台  · 公众号  ·  · 2023-07-25 08:00
在C#中,浅拷贝和深拷贝是两种不同的对象拷贝方式。浅拷贝仅拷贝对象的字段和属性值,而深拷贝则会递归地拷贝对象的所有属性和字段。以下是实现浅拷贝和深拷贝的方法:1. 浅拷贝浅拷贝可以通过实现ICloneable接口来实现。当一个对象实现了ICloneable接口并调用Clone方法时,它将返回一个新对象,新对象的字段和属性与原来的对象相同。示例代码:```csharppublic class Person : ICloneable{ public string Name { get; set; } public int Age { get; set; } public object Clone() { return this.MemberwiseClone(); }}```在上面的代码中,Person类实现了ICloneable接口,并实现了Clone方法来返回一个新的Person对象。使用MemberwiseClone方法来实现浅拷贝。2. 深拷贝深拷贝可以使用序列化和反序列化来实现。当一个对象序列化为XML或二进制格式,然后反序列化为新的对象时,将实现深拷贝。 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照