我想实现一种机制,在我调用set函数时将bool变量更改为true(我有几个setter函数)。示例代码:
private bool isSomethingChanged = false;
public void SetName(string _name)
{
// change name
}
我不想在所有setter函数的末尾写:isSomethingChanged = true;
。
我想让它自动发生。有可能吗?
答案 0 :(得分:0)
首先 - 仅仅在设置器结束时将isSomethingChanged
设置为true是不够的 - 您还应该验证某些内容是否真的发生了变化。 E.g。
public void SetName(string _name)
{
if (name == _name) // check
return;
name = _name;
isSomethingChanged = true;
}
回到解决问题 - 没有内置功能可以在调用任何方法时自动设置某个变量。您可以使用代码生成。例如。你可以使用AOP框架PostSharp。这是与此框架的INotifyPropertyChanged
接口的实现,它几乎完全相同:AOP Implementation of INotifyPropertyChanged。唯一的区别是你应该设置变量值而不是引发事件。