SUPINFO International University

SUPINFO Institute of Information Technology
Laboratoire Microsoft




Tous les Articles du Laboratoire Microsoft

Présentation du C# (suite et fin)
Accueil > Articles > Développement
Auteurs 
Franklin-jaurès KONGBANG

Etudiant


 Tous les articles de cet auteur

3/5

Assez Bien


183481
141/429

Les évènements

Un gestionnaire d’événements, plus communément appelé «EventHandler » est une procédure dans le code qui nous permet de réaliser une action lorsqu’un événement survient. Un événement peut être un clique de souris sur un contrôle (Applications Windows) ou alors un message qui n’arrive pas dans la queue de messages.

On peut prendre par analogie un espion (l’évènement), qui doit en permanence par contact radio (capture de l’évènement), renseigner son QG (gestionnaire d’évènement) qui saura envoyer des instructions en conséquent. 

 

Dans l’exemple ci-dessous, on mettra les Evènements en évidence en simulant une opération d’espionnage ! 

 

using System;

namespace evenements

{

      public class Labo //le laboratoire à espionner

      {

            public event EventHandler espion; //je crée l’évènement espion

            private string _conversation;

                  //je crée une propriété du champ _conversation

                  public string Conversation

                  {

                        get

                        {

                             return _conversation;

                        }

                        set

                        {

                             _conversation = value;

                             //espion nous renseignera dès que le champ conversation sera initialisé

                             if (espion != null)          //on teste d'abord si l'événement espion est nulle avant de le lever

                                   espion(this,EventArgs.Empty);

                        }

                  }

      }

      public class Test

      {

            Labo objet;

            public Test()

            {

                  objet = new Labo();

                  connexionQG();

            }

            public void connexionQG() //va simuler la connexion de l'espion à son QG qui ici, est le gestionnaire d'évènement

            {

                  objet.espion += new EventHandler(QG);  //l'évènement espion est associé au gestionnaire d'évènement(QG)

                  Console.WriteLine("connexion établie");

            }     

            public void arretConnexion() //va couper la connexion au QG (gestionnaire d'évènement)

            {

                  objet.espion -= new EventHandler(QG); //le "-" empêche la capture de l'évènement espion (coupe la connexion)

                  Console.WriteLine("connexion coupée");

            }

            public void QG(object sender,EventArgs e) //c'est notre gestionnaire d'évènement! ici, il représente le QG

            {

                  Console.WriteLine("Base: Données reçues 5 sur 5!");

            }

            public void la_conversation(string conversation)     //on simule une conversation

            {

                  Console.WriteLine("informations : {0}",conversation);

                  objet.Conversation = conversation;       //il y aura accès en écriture sur le champ _conversation (voir propriété)

            }

      }

      class Class1

      {

            [STAThread]

            static void Main(string[] args)

            {

                  Test emetteur = new Test();

                  emetteur.la_conversation("nous avons construit dans le plus grand secret un centre de recherche nucléaire");

                  emetteur.la_conversation("nous pouvons en être fière");

                  emetteur.arretConnexion();

                  emetteur.la_conversation("nous avons même déjà effectué les premiers tests, et ceux-ci s'avèrent très concluant!");

                  emetteur.la_conversation("ON VA DOMINER LE MONDE ah! ah! ah!");

                  emetteur.connexionQG();

                  emetteur.la_conversation("Pour l'instant, personne ne doit être au courant de notre projet");

                  Console.ReadLine();

            }

      }

}

 

Sortie console :

 

 

En gros on peut retenir que la déclaration d’un événement suit un certain schéma :

1)      la déclaration de l’événement en question         ( public event EventHandler espion ;)

2)    l’association de l’événement au gestionnaire d’événement    ( objet.espion += new EventHandler(QG);)                                         

3)      la définition du gestionnaire d’événement

    public void QG(object sender,EventArgs e)

        {

            Console.WriteLine("Base : Données reçues 5 sur 5!");

        }                                

4)      le choix de l’emplacement de l’événement

    if (espion != null)

    espion(this,EventArgs.Empty);

 


Sommaire
1. Les collections
2. les structures
3. les classes
4. Les propriétés
5. Les exceptions
6. Héritage et polymorphisme
7. Les interfaces
8. Surcharge d’opérateurs
9. La délégation
10. Les évènements



En Savoir Plus 
Evaluez cet article 


Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft



Retrouvez ci-dessous les autres sections du Laboratoire Microsoft