//通知已订阅事件的对象 protected virtual void OnClick(ClickEventArgs e) { ClickEventHandler temp = NewClick; //MulticastDelegate一个委托链表 //通知所有已订阅事件的对象 if (temp != null) temp(this, e); //通过事件委托逐一回调客户端的方法 }
private void OnClickDown(object sender, ClickEventArgs e) { // 真正的事件处理函数 Console.WriteLine(e.Song); }
//提供一个方法,引发事件 public void SimulateClick(string s) { ClickEventArgs e = new ClickEventArgs(s); OnClick(e); }