现在的位置: 首页 > 综合 > 正文

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

2013年07月28日 ⁄ 综合 ⁄ 共 670字 ⁄ 字号 评论关闭

首先新建一个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("属性值发生变化");
        }

运行截图:

 

 

 

 

抱歉!评论已关闭.