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("屬性值發生變化");
        }

運行截圖:

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM