我对在 C# 中复制集合对象非常麻烦感到震惊,尤其是在您想要深度复制的情况下。.Net 没有采用 Java clone() 路线是否有充分的设计理由,是否有一些我在 C#/.Net 中遗漏的等效范例?
问问题
157 次
1 回答
7
浅拷贝
对于浅拷贝,.NET 提供Object.MemberwiseClone。
深拷贝
对于深拷贝,Microsoft 建议实施自定义Copy
方法。深拷贝需要关于类本身的复杂知识——事实上,对于给定的类,制作多种不同类型的深拷贝甚至可能是有意义的。因此,没有为此目的预定义的方法或接口。
但是 ICloneable 接口呢?
有ICloneable 接口,其用途可能大致对应于 Java 的Object.clone
. 但是,Microsoft建议不要使用它,因为它没有指定副本需要多浅或多深才能正确实现接口。
于 2013-01-10T12:04:53.197 回答