将数据从函数绑定到bool变量

时间:2014-04-03 08:43:05

标签: c#

我想实现一种机制,在我调用set函数时将bool变量更改为true(我有几个setter函数)。示例代码:

private bool isSomethingChanged = false;

public void SetName(string _name)
{
    // change name
}

我不想在所有setter函数的末尾写:isSomethingChanged = true;。 我想让它自动发生。有可能吗?

1 个答案:

答案 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。唯一的区别是你应该设置变量值而不是引发事件。