防止财产重新分配

时间:2013-03-09 22:00:27

标签: c# properties

通常,当我编写可以由用户使用某种绑定编辑的类的属性时......为了防止执行GUI逻辑,我不允许为属性分配相同的值:

public PMSAccountingYear AccountingYear{
    get { return _accountingYear; }
    set{
        if(_accountingYear == value)
            return;
        _accountingYear = value;
        NotifyOtherProperties();

        LogChanges();
        EmallToTheBoss();

        Errr();
        BlowBombInTheGarden();
        Etc();
    }
}

条件检查看起来不优雅,并且无法通过任何自动代码分析检测到。 你能建议一个更好的案例吗? 有一个属性可能吗?

1 个答案:

答案 0 :(得分:3)

你在做什么都很好;这是为INotifyPropertyChanged之类的东西实现setter的常用方法(aee也是该页面上的示例)。

由于价值未发生变化,因此无需实际更新支持字段,尤其是不通知其他人“更改”值。