对象初始化程序中的双重赋值

时间:2013-08-22 16:04:10

标签: c# wpf object-initializers

我偶然发现了以下内容:

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属性的意思。 那么为什么在对象初始化器中使用双重分配是不可能的呢?

1 个答案:

答案 0 :(得分:2)

在对象初始值设定项表达式中,对象本身在初始化表达式中不可访问。该表达式中使用的任何内容都被解释为它在对象初始值设定项之外使用。因此,在这种情况下,Height = 10AFrameworkElementHeight的上下文中进行评估,并绑定到该对象上的属性