Comment append un événement à une classe

Disons que j’ai une classe nommée Frog, elle ressemble à:

public class Frog { public int Location { get; set; } public int JumpCount { get; set; } public void OnJump() { JumpCount++; } } 

J’ai besoin d’aide avec 2 choses:

  1. Je souhaite créer un événement nommé Jump dans la définition de la classe.
  2. Je veux créer une instance de la classe Frog, puis créer une autre méthode qui sera appelée lorsque Frog saute.

 public event EventHandler Jump; public void OnJump() { EventHandler handler = Jump; if (null != handler) handler(this, EventArgs.Empty); } 

puis

 Frog frog = new Frog(); frog.Jump += new EventHandler(yourMethod); private void yourMethod(object s, EventArgs e) { Console.WriteLine("Frog has Jumped!"); } 

@CQ: Pourquoi créez-vous une copie locale Jump pf? De plus, vous pouvez enregistrer le test suivant en modifiant légèrement la déclaration de l’événement:

 public event EventHandler Jump = delegate { }; public void OnJump() { Jump(this, EventArgs.Empty); }