委托Delegate +事件Event
委托就是面向对象函数指针 能指向静态方法和对象的实例 委托必须跟预委托(方法)具有相同的返回值 参数类型 委托的本质 是一个类 任何声明类的地方都可以声明委托。 我们习惯于把数据作为参数传递给方法,如上面的例子所示。所以,给方法传递另一个方法听起来有点奇怪。而有时某个方法执行的操作并不是针对数据进行的,而是要对另一个方法进行操作。更麻烦的是,在编译时我们不知道第二个方法是什么,这个信息只能在运行时得到,所以需要把第二个方法作为参数传递给第一个方法 事件的四个步骤: 1: 在事件发行者中定义一个事件 2:在事件发行者中触发事件 3:在事件订阅者中定义事件处理程序 4:向事件发行者订阅一个事件 事件设计准则: 1:命名准则使用PascalCasing命名方式 2:声明delegate时,返回值必须是void,EventName事件的事件委托是EventNameEventHanlder,事件接受两个传入参数,一律命名为sender和e 3:定义一个提供事件委托的类,对类以EventNameArgs进行命名,从System.EventArgs派生该类,然后添加所有事件特定的成员。 public delegate void EventNameEventHanlder(object sender ,EventNameEventArgs e) 例子: ~using System; class