我有一个布尔变量,我希望对其值的每次更改都能调用一段代码。
我当前的解决方案如下:
bool _manualControl;
bool manualControl {
get {
return _manualControl;
}
set {
this._manualControl = value;
GlobalEventManager.ManualControlEvent?.Invoke(value);
}
}
此解决方案有两个问题:
我可以防止在不调用我的代码的情况下在内部更改“ _manualControl”的值。
我宁愿避免使用两个变量来获得所需的行为。
在避免这两个特定问题的同时,有什么方法可以实现我想要的?
最佳答案
您可以将属性设置为public
,并具有一个private
备用字段,该字段只能在您可以控制的类中进行修改。
或者,您可以使用诸如PostSharp之类的面向方面的编程框架,该框架将允许您使用auto属性并以所需的行为对其进行注释。这将消除您需要有备用字段的需求。