.net 使用ICloneable时,如何知道我的副本是深还是浅?

3htmauhk  于 2023-02-10  发布在  .NET
关注(0)|答案(1)|浏览(138)

如Microsoft的site所述,ICloneable接口可以进行深层或浅层拷贝:
克隆的实现可以执行深层复制或浅层复制。在深层复制中,复制所有对象;在浅拷贝中,仅复制顶层对象,而较低层包含引用。
老实说,由于这个主题没有额外的解释,我不明白我怎么知道什么时候会发生浅复制或深复制?

jpfvwuh4

jpfvwuh41#

你不能--这是为什么这个API基本上无法使用的原因之一 * 除了 * 在你自己的模型中,当你知道并控制一切的时候,在那些场景中:您可以使用自己的克隆API(甚至可能是强类型的!)。
框架不为这种情况提供任何API;您 * 可能 * 能够使用序列化程序库作为深度克隆的等价物,尽管这可能没有您希望的效率高。

相关问题