我偶然发现了以下内容:
class AFrameworkElement : FrameworkElement
{
private void SomeMethod()
{
Size s = new Size {
Width = Height = 10
};
// the size isn't used for measuring oder arranging
}
}
突然间,我无法调整控件的大小...... IntelliSense显示了问题:我将鼠标放在Height
上,显示FrameworkElement.Height
属性的意思。
那么为什么在对象初始化器中使用双重分配是不可能的呢?
答案 0 :(得分:2)
在对象初始值设定项表达式中,对象本身在初始化表达式中不可访问。该表达式中使用的任何内容都被解释为它在对象初始值设定项之外使用。因此,在这种情况下,Height = 10
在AFrameworkElement
和Height
的上下文中进行评估,并绑定到该对象上的属性