为什么不'Net使用克隆范例

本文关键字:范例 Net 为什么不 | 更新日期: 2023-09-27 17:51:15

我被c#中复制一个集合对象是多么的麻烦所震惊,尤其是当你想要一个深度拷贝的时候。为什么。net没有走Java的clone()路线,是否有一个很好的设计原因,是否有一些我在c#/。net中错过的等效范例?

为什么不'Net使用克隆范例

浅拷贝

对于浅拷贝,. net提供了Object.MemberwiseClone.

<<p> 深拷贝/strong>

对于深度拷贝,微软建议实现自定义的Copy方法。深度复制需要对类本身有复杂的了解——事实上,对于一个给定的类,创建多个不同类型的深度复制可能是有意义的。因此,没有为此目的预先定义的方法或接口。

但是iclonable接口呢?

有iclonable接口,其目的可能大致对应于Java的Object.clone。然而,微软不建议使用它,因为它没有指定接口正确实现所需的拷贝有多浅或多深。