深入理解对象复制与单例模式
1. 对象的深复制
在处理对象复制时,深复制是一个重要的概念。当数组由非简单可复制类型组成时,我们需要创建一个全新的数组,其中每个成员都被深复制。可以使用以下方法实现:
- Array.ConvertAll() 静态方法
- ToArray() LINQ 扩展方法
以下是一个 Person 类的深复制方法示例:
public Person DeepCopy()
{
var copy = new Person();
copy.Names = (string[]) Names.Clone();
copy.Addresses = Array.ConvertAll(Addresses, a => a.DeepCopy());
return copy;
}
对于常见的集合类型,如 List 、 Dictionary 等,浅复制通常在复制构造函数中实现。例如, List<int> 的复制可以这样做:
List<int> items = new(){1, 2, 3};
List<int> replica = new(items); // copy constructor
当集合包含
超级会员免费看
订阅专栏 解锁全文
988

被折叠的 条评论
为什么被折叠?



