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("属性值发生变化"); }
运行截图: