c# - 防止属性(property)重新分配

标签 c# properties

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

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

        LogChanges();
        EmallToTheBoss();

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

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

最佳答案

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

由于值没有改变,因此不需要实际更新支持字段,尤其是不要通知其他人“已更改”的值。

关于c# - 防止属性(property)重新分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15316392/

相关文章:

java - 用于 bean 验证的自定义验证消息

javascript - Vue.js 2,从指令更改数据

c# - ASP.Net CascadingDropDown 和 EnableEventValidation ="false"

c# - 两个单独的 UserControls 似乎是同一个实例

iphone - @dynamic 使用的常见情况是什么?

C# 在运行时停止属性更改

java - 来自多个包的推土机通用映射(通配符?)

c# - XMLReader 读取到未知类型的下一个兄弟

c# - 这个 LINQ 查询什么时候执行?

c# - 将 int 转换为 dropdownlistfor 的字符串