IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

besoin d'aide sur le concept d'evenement (EventHandler)


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut besoin d'aide sur le concept d'evenement (EventHandler)
    Bonjour,

    J'ai du mal à comprendre le concept des Événement. J'ai déjà regardé les tutos, et cours (sur ce site et sur msdn). Mais je n'arrive pas à comprendre le principe. Quelqu'un pourrait-il m'aider?

    J'ai saisi qu'il faut créer une classe qui hérite de EventArgs pour créer des arguments d'événement customisés.
    Ensuite dans la classe émettrice il faut déclarer les EventHandler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class TestHandler{
    public event EventHandler<CustomEventArgs> nouvelleCommande;
    ....
    }
    Mais après ça c'est le flou complet.
    Quand et comment déclenche-t-on cet event?

    J'espère que quelqu'un pourra m'éclaircir ce point, que je trouve très obscure.
    Merci

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Ca permet à une classe de notifier d'éventuels appelants que quelque chose se passe.

    Par exemple, une classe qui représente un port USB (disons USBConnection). Cette classe pourrait balancer un événement quand un périphérique USB se connecte. Supposons qu'elle souhaite dans ce cas transmettre le nom du périphérique.

    Tu fais donc une class USBEventArgs, qui hérite de EventArgs, et qui contient une propriété de type string nommée DeviceName.

    Tu rajoutes un event (DeviceConnected) à ta classe USBConnection, de type EventHandler<USBEventArgs>. Et dans le code de la classe, tu lèves cet event quand un périphérique se connecte.

    Comme ça, ailleurs dans ton code, si tu abonnes une méthode à cet event, elle se déclenchera lorsqu'un périphérique se connecte.

    L'exemple typique, ce sont les contrôles de l'interface graphique : un bouton est capable de prévenir l'extérieur qu'on lui a cliqué dessus.

  3. #3
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Si besoin le guide de programmation des événements sur la MSDN.

  4. #4
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut
    Merci Guulh de cette réponse rapide, mais pourrais-tu me présenter du code pour expliquer tout ça?

    J'ai un tutoriel mais j'ai beaucoup de mal à saisir ce que cela fait. Donc si tu pouvais le commenter un maximum, cela serait vraiment sympa.

    J'essaie depuis 4 heures de bien saisir le mécanisme mais cela ne veut pas rentrer. Je me sens bête.

    Merci

  5. #5
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    Salut,
    en fait chez Microsoft les 'events' représentent l'implémentation du pattern Observer, qui est assez simple, très utilisé mais "masqué" par la syntaxe dans .NET.
    Un peu de lecture ici (c'est Wikipedia, j'ai eu la flemme de chercher autre part) :
    http://fr.wikipedia.org/wiki/Observa...de_conception)

  6. #6
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut
    Merci MetalGeek

    Bon cela ne parle pas des évènements, mais je ne savait pas qu'ils implémentaient le design pattern "observer".
    Je ne connaissais pas ce pattern, j'en avais entendu parlé, mais je ne m'étais pas penché dessus.
    Donc merci pour ce lien qui m'aura appris quelque chose d'important, à mon avis.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/05/2015, 17h21
  2. [AC-2003] besoin d'aide sur la conception d'un mail
    Par revemane dans le forum IHM
    Réponses: 1
    Dernier message: 18/03/2011, 10h13
  3. Swing besoin d'aide sur la conception
    Par damien77 dans le forum Débuter
    Réponses: 1
    Dernier message: 14/12/2008, 14h28
  4. Besoin d'aide sur la conception/Access
    Par rutayisire dans le forum Modélisation
    Réponses: 11
    Dernier message: 02/05/2008, 11h49
  5. Besoin d'aide sur la conception d'un base de données
    Par lordgodgiven dans le forum Modélisation
    Réponses: 1
    Dernier message: 01/10/2005, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo