我有一个布尔变量,我希望对其值的每次更改都能调用一段代码。

我当前的解决方案如下:

bool _manualControl;
bool manualControl {
    get {
        return _manualControl;
    }
    set {
        this._manualControl = value;
        GlobalEventManager.ManualControlEvent?.Invoke(value);
    }
}


此解决方案有两个问题:


我可以防止在不调用我的代码的情况下在内部更改“ _manualControl”的值。
我宁愿避免使用两个变量来获得所需的行为。


在避免这两个特定问题的同时,有什么方法可以实现我想要的?

最佳答案

您可以将属性设置为public,并具有一个private备用字段,该字段只能在您可以控制的类中进行修改。

或者,您可以使用诸如PostSharp之类的面向方面的编程框架,该框架将允许您使用auto属性并以所需的行为对其进行注释。这将消除您需要有备用字段的需求。

10-07 13:39
查看更多