这句代码是什么意思?public event PropertyChangedEventHandler PropertyChanged;

这句代码是什么意思?public event PropertyChangedEventHandler PropertyChanged;

是事件委托。所谓“事件委托”,一个事件的本质是一个委托(因为事件是委托类型的)。而委托的好处在于它可以动态调用不同类之间具备相同函数签名(函数参数顺序、类型、个数相同),且函数返回值必须完全相同的函数。我先举一个委托的例子:namespace A{ public delegate void Say(); //委托 class Dog{public void Say(){Console.WriteLine("汪汪!");}}class Cat{public void Say(){Console.WriteLine("喵喵!");}}public class MainTest{static void Main(string[] args){Say s = new Say(new Dog().Say); //告诉委托调用Dog类中的Say方法s += new Cat().Say; //同时告诉委托调用Cat类中的Say方法 s();}}}Dog和Cat类毫无联系,但是却可以通过委托连接起来关系,我们说委托具备“跨类调用”函数的特性。因此,我们再来看一个事件的应用:public class MyClass{ public event EventHandler MyEvent = null; //EventHandler是一个系统委托,一般用于定义事件 ……………… public void MyMethod() //这是一个引发事件的方法,一旦调用该方法,必然触发事件 { ……………… //引发一个事件!! MyEvent(this,null); } } 主函数中: MyClass mc = new MyClass(); mc.MyEvent+=new EventHandler(MyEvent_Raised); ……………… static void MyEvent_Raised(object sender, EventArgs e) { ……………… //做你想做的事情 }事件的实例化是在使用到包含这个事件的实体类时候(比如在主函数需要调用的时候)。通过+=进行实体化;然后当调用实体的MyMethod方法时候,这个方法将引发一个事件,也就是触发了绑定的MyEvent_Raised方法。