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的值 真接调用相应的改变方法就行了
所以你写的这个类 要让属性在类外部也能改变其值 不然属性值的改变只在类内部并触发事件也就没什么意义了
本文通过一个 C# 示例介绍了如何实现属性更改时触发事件。示例中定义了一个 `people` 类,该类包含一个字符串属性 `Name` 和一个事件 `PropertyChanged`。当 `Name` 的值发生更改时,会触发事件通知外部监听者。
2219

被折叠的 条评论
为什么被折叠?



