在冻结对象之前是否有必要始终检查CanFreeze
。
如果我看PresentationOptions:Freeze
在标记中使用,那就没有完成。因此,我不认为,必须在everey对象创建之前调用CanFreeze。
但是什么时候使用CanFreeze?
答案 0 :(得分:2)
您不必致电CanFreeze
,但如果您没有,并且您的对象不可冻结,则会抛出InvalidOperationException
(请参阅"remarks"冻结部分())。因此,CanFreeze
是一个允许您调用Freeze()而不会有异常风险的选项。
有几种情况下调用Freeze()会导致异常。
直接引用Freeze()
参考:
您无法冻结Freezable对象 如果出现以下任何一种情况 这个对象是真的:
它有动画或数据绑定 属性。
它具有由a设置的属性 动态资源。欲获得更多信息 关于动态资源,请参阅 资源概述。
它包含Freezable子对象 不能冻结。