【发布时间】:2011-09-19 09:16:16
【问题描述】:
Clone() 只做一个浅拷贝,如果没有一些样板代码包装序列化 (How do you do a deep copy of an object in .NET (C# specifically)?),在 C# 中似乎没有直接的方法可以做到这一点。有没有一种简单的方法可以在 Powershell 中执行此操作而无需引用外部库?
【问题讨论】:
-
这种使用序列化的方法依赖于所有对象(以及递归的成员对象)都是可序列化的——这并不总是正确的。 .NET,因此在其上构建的任何本身不实现它的东西,都没有通用的深拷贝(而且,一般来说,如果没有所有类型的合作,这是不可能的)。然而,特定的方法可以在特定的情况下起作用,但需要更多的上下文来识别可能性。
-
这里的高级要求是什么?当成员字段(或在本例中为值)是引用类型时,您是否意识到“深”副本的微妙之处? (忽略序列化效果)
-
这开始是作为复制从Parsing an ini file 返回的嵌套字典的要求,然后我对更通用的东西感到好奇。另外,我最初使用 Clone() 时不记得它不是深拷贝。
标签: powershell