【问题标题】:Confused: Abstract Class Properties困惑:抽象类属性
【发布时间】:2020-02-23 01:22:04
【问题描述】:

抽象类,包含属性:

private Box padding_;
public Box Padding
{
    get { return padding_; }
    set {
        padding_ = value;
        Model.UpdateValues( );
    }
}

后来我更新了一个继承类实例的属性,属性更新了:

ExitButton.Padding.Top = 5f;

setter 中的代码没有被调用。我很困惑。

【问题讨论】:

  • Padding.Top 指的是 Padding 类的成员 Top,因此该属性的设置器将运行,而不是 Padding 属性本身。您需要直接分配给.Padding 才能看到setter 执行。

标签: c# class inheritance properties abstract-class


【解决方案1】:

实际上与抽象类无关。这根本不会调用Padding 的设置器:

ExitButton.Padding.Top = 5f;

它为Padding 调用getter,然后为该getter 返回的Box 对象中的Top 属性调用setter。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多