据说WPF的设计者已经让它变得经济或者性能更高了。有人可以用一个例子来解释一下幕后发生的事情使 WPF 属性系统更加经济吗?
您可能指的是依赖属性比普通 CLR 属性“便宜”这一事实。
简单来说:
依赖属性是使用稀疏数据结构实现的仅当在对象上设置属性值时才为其分配内存。相反,标准 CLR 属性值作为字段存储在定义该属性的类的每个对象,即使所有这些对象都将属性设置为其默认值。
例如,如果我们有 100 个对象,它们具有 100 个类型的 CLR 属性int
每个,那么我们使用 10000int
s 的内存价值,即使所有这些都具有相同的默认值 (0)。
如果该属性是依赖属性,则我们根本不会使用任何额外的内存:WPF 不需要记住任何属性的值,因为它知道您没有更改默认值。
当然,上面是一个相当简单的解释,并没有涵盖依赖属性相对于 CLR 属性的所有优点,但它应该充分解释了“DP 具有更高的性能”这一说法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)