在上一个例子中我们演示了PowerShell通过引用(内存地址)来存储对象。如果你想创建一个副本,必须手动复制对象的每一个属性。
下面我们再来看一个例子:
$object1 = @{Name='Weltner'; ID=12 } $object2 = @{Name='Frank'; ID=99 } $a = $object1, $object2 # 通过序列化和反序列化深层拷贝对象: $b = $a | ConvertTo-Json -Depth 99 | ConvertFrom-Json $b[0].Name = 'changed' $b[0].Name $a[0].Name
有一点需要留意,反序列化后对象的类型发生了变化:
PS C:\> $a[0].GetType().FullName System.Collections.Hashtable PS C:\> $b[0].GetType().FullName System.Management.Automation.PSCustomObject PS C:\>
原文链接:cloning object
本文链接: https://www.pstips.net/cloning-object.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!