Comment s’abonner à des événements en C#


Voici un résumé des différentes manières de s’abonner à un événement, via Visual Studio ou par programmation.

1. Depuis Visual Studio, la méthode est assez simple : dans la partie supérieure de la fenêtre Propriétés, cliquez sur le bouton Événements et double-cliquez sur l’événement que vous souhaitez créer.

2. Par programmation, en développant une méthode dont la signature correspond à la signature du délégué pour l’événement. L’avantage est que Visual Studio nous aide pour retrouver la signature (via += et Tab).


Button1.Click += new EventHandler(Button1_Click);

private void Button1_Click(object sender, EventArgs e)
{
   ...
}

3. Par programmation, en utilisant les méthodes anonymes. L’avantage est de pouvoir rapidement s’attacher à un événement et d’interagir avec les variables définies dans la méthode englobante… mais il est nécessaire de connaître la signature de l’événement et Visual Studio ne nous aide pas !

Button1.Click += delegate(object sender, EventArgs e)
  {
     ...
  };

4. Par programmation, en utilisant les expressions Lambda. Dans ce cas également,  on peut s’attacher à un événement rapidement mais sans devoir connaître la signature de l’événement. On spécifie les deux arguments (sender et e) et le compilateur détermine les types d’objets associés.

Button1.Click += (sender, e) =>
  {
     ...
  };
Advertisements
Tagged with: ,
Posted in General

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow me
   RSS Feed    Twitter    Linked In

Write you email address to subscribe at this blog and to receive new posts by mail.

Join 611 other followers

Who I am?






%d bloggers like this: