创建一个事件以监视变量的变化

Arr*_*row 8 .net c# event-handling inotifypropertychanged microsoft-metro

我们只说我有:

public Boolean booleanValue;

public bool someMethod(string value)
{
   // Do some work in here.
   return booleanValue = true;
}
Run Code Online (Sandbox Code Playgroud)

如何创建一个在booleanValue发生更改时触发的事件处理程序?可能吗?

Mir*_*Mir 13

通常避免使用公共字段作为规则.尽量保持私密性.然后,您可以使用激活事件的包装器属性.看例子:

class Foo
{
    Boolean _booleanValue;

    public bool BooleanValue
    {
        get { return _booleanValue; }
        set
        {
            _booleanValue = value;
            if (ValueChanged != null) ValueChanged(value);
        }
    }

    public event ValueChangedEventHandler ValueChanged;
}

delegate void ValueChangedEventHandler(bool value);
Run Code Online (Sandbox Code Playgroud)

这是实现您所需要的一种简单的"原生"方式.还有其他方法,甚至是由.NET Framework提供的,但上面的方法只是一个例子.


Til*_*lak 8

已定义INotifyPropertyChanged以通知属性是否已更改.

将变量包装在属性和使用INotifyPropertyChanged界面中.