C#通过事件监控属性值的变化

首先新建一个Person类  ,假设通过事件来检测Person类中的属性Name的变化;

      private string name;

        public string Name
        {
            get { return this.name; }
            set
            {
                if (value != this.name)
                {
                    WhenValueChange(); 
                }
                this.name=value;
            }
        }

WhenValueChange()方法是在属性Name发生变化时所执行的方法;

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

 public void WhenValueChange()
 {
            if(OnValueChanged!=null)
            {
                OnValueChanged(this, null);
            }
   }

编写测试类:

static void Main(string[] args)
        {
            Person P = new Person();
            P.Name = "张三";
            Console.WriteLine(P.Name);
            P.OnValueChanged += new delValueChange(P_OnValueChanged);
            P.Name = "Test";
            Console.ReadLine();
        }

        static void P_OnValueChanged(object sender, EventArgs e)
        {
            Console.WriteLine("属性值发生变化");
        }

运行截图:

原文地址:https://www.cnblogs.com/h20064528/p/2850637.html