/// <summary> /// 重写基类方法,然后用base关键字调用基类方法 /// 间接实现在子类中调用事件 /// </summary> /// <param name="e"></param> protected override void OnShapeChanged(ShapeEventArgs e) { base.OnShapeChanged(e); }
protected virtual void OnShapeChanged(ShapeEventArgs e) { EventHandler<ShapeEventArgs> handler = ShapeChanged; if (handler != null) { handler(this, e); } }
private static void HandleShapeChanged(object sender, ShapeEventArgs e) { Shape s = (Shape)sender; Console.WriteLine("Received event.Shape area is now {0}", e.NewArea); s.Draw(); }