Jam*_*oat 8 c# wpf dependency-properties
在WPF中,当与值类型一起使用时,DependencyProperty会导致大量的装箱/拆箱吗?或者实现一些如何防止这种情况而不是box/unbox值类型?他们是怎么做到的?
我认为值类型是DependencyPropertys的主要用例.
谢谢
public double Price
{
get { return (double)GetValue(PriceProperty); }
set { SetValue(PriceProperty, value); }
}
public static readonly DependencyProperty PriceProperty =
DependencyProperty.Register("Price", typeof(double), typeof(Quote), new UIPropertyMetadata(0.0d));
Run Code Online (Sandbox Code Playgroud)
简短的回答是肯定的.
依赖项属性值的下划线存储没有值类型的概念,并将所有内容存储为对象,这将导致装箱.框架本身通过辅助类BooleanBoxes对布尔属性存储优化使用"聪明的技巧",其具有存储为盒装对象的true和false值.
通常,如果您有一些自定义属性,则无需担心.但是,如果您有一个复杂的场景,其中有数千个自定义依赖项对象飞来飞去,您可能需要考虑装箱/取消装箱性能优化.
| 归档时间: |
|
| 查看次数: |
704 次 |
| 最近记录: |