C#事件监控变量值的改变

    如何使用C#的事件来监控变量的改变?这是一个非常常见的问题。并且如果能够使用事件来解决的话对于编程会带来很大的便利同时保持性能的优良。

    以下是完整的代码

public class Program
{
    //需要监控的字段
    private int myValue;

    //属性设置,此处调用了事件触发函数
    public bool MyValue
    {
        get { return myValue; }
        set 
        {
            //如果变量改变则调用事件触发函数
            if (value!=myValue)
            {
                WhenMyValueChange();
            }
            myValue = value; 
        }
    }

    //定义的委托
    public delegate void MyValueChanged(object sender, EventArgs e);
    //与委托相关联的事件
    public event MyValueChanged OnMyValueChanged;

    //构造函数初始化初值并绑定一个事件处理函数
    public Program()
    {
        myValue = 0;
        OnMyValueChanged += new MyValueChanged(afterMyValueChanged);

    }

    //事件处理函数,在这里添加变量改变之后的操作
    private void afterMyValueChanged(object sender, EventArgs e)
    {
        //do something
    }

    //事件触发函数
    private void WhenMyValueChange()
    {
        if (OnMyValueChanged != null)
        {
            OnMyValueChanged(this, null);
        }
    }
}
原文地址:https://www.cnblogs.com/kidfruit/p/1706516.html