Freezable.Clone() 和 Freezable.Clone() 有什么区别? Freezable.CloneCurrentValue() 方法

发布于 2024-11-02 20:20:20 字数 261 浏览 3 评论 0原文

文档说

克隆- “创建 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

从﹋此江山别 2024-11-09 20:20:20

如果我正确理解文档,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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文