Freezable.Clone() 和 Freezable.Clone() 有什么区别? Freezable.CloneCurrentValue() 方法
文档说
克隆- “创建 System.Windows.Freezable 的可修改克隆,进行深层复制 对象的值。复制对象的依赖属性时, 此方法复制表达式(可能不再解析)但不复制动画 或其当前值。”
CloneCurrentValue- “使用以下命令创建 System.Windows.Freezable 的可修改克隆(深拷贝) 它的当前值。”
这意味着两者都进行深复制。那么有什么区别呢?
The documentation says
Clone-
"Creates a modifiable clone of the System.Windows.Freezable, making deep copies
of the object's values. When copying the object's dependency properties,
this method copies expressions (which might no longer resolve) but not animations
or their current values."
CloneCurrentValue-
"Creates a modifiable clone (deep copy) of the System.Windows.Freezable using
its current values."
It means both do deep copy. Then what is the difference?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我正确理解文档,
Clone
还会复制绑定表达式。因此,如果对象的某个属性被绑定,它在副本中仍然保持绑定状态。另一方面,
CloneCurrentValues
仅复制当前值,顾名思义。不会保留绑定,因此如果修改了绑定源,则副本中的值不会更新。If I understand the documentation correctly,
Clone
also copies the binding expressions. So if a property of the object is bound, it remains bound in the copy.CloneCurrentValues
, on the other hand, only copies the current values, as the name implies. Bindings are not kept, so the values in the copy won't be updated if the source of the binding is modified.