using System; namespace ConsoleApplication7 { class Program { static void Main(string[] args) { people p = new people("Name1"); p.PropertyChanged += new EventHandler(p_PropertyChanged); //注冊事件處理函數 p.Name = "Name2"; Console.ReadKey(); } static void p_PropertyChanged(object sender, EventArgs e) //事件的處理函數 { Console.WriteLine("NamePropertyChanged:"+(sender as people).Name); } } class people { public event EventHandler PropertyChanged; private string name=String .Empty; public people(string name) { this.name = name; } public string Name { get { return name; } set { name = value; this.OnPropertyChanged(new EventArgs()); //每次改變Name值調用方法; } } private void OnPropertyChanged(EventArgs eventArgs) { if (this.PropertyChanged != null) //判斷事件是否有處理函數 { this.PropertyChanged(this, eventArgs); } } } }
//請參考
從你寫的程序來看 從類的外部是不可能改變屬性的值了,因為你的這兩個屬性都是只讀的, 只能在類的內部改變_a _b的值
那樣你寫這個類的時候 你應該很清楚哪里改變了_a _b的值 真接調用相應的改變方法就行了
所以你寫的這個類 要讓屬性在類外部也能改變其值 不然屬性值的改變只在類內部並觸發事件也就沒什么意義了