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 :

[C#] Quelles infos sur les accesseurs add/remove d'un event?


Sujet :

C#

  1. #1
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut [C#] Quelles infos sur les accesseurs add/remove d'un event?
    Bonsoir j'ai trouvé dans un livre le code suivant pour envelopper un événement personnalisé dans une classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    class MyEventWrapper
    {
    	// create an instance of this delegate
    	// use the event keyword
    	public event SomethingHappened somethingHappened;
     
    	// fire the event when appropriate
    	public void WhenSomethingHappens()
    	{
    		// only fire if someone has subscribed
    		if(somethingHappened != null)
    			somethingHappened();
    	}
     
    	// expose the event
    	public event SomethingHappened SomethingHappenedEvent
    	{
    		add { somethingHappened += value; }
    		remove { somethingHappened -= value; }
    	}
    }
    Ma question est : ou puis je trouver des informations sur les termes add et remove ? Selon le livre add et remove représentent l'équivalent dans un event de get and set dans une propriété...

    Je n'ai jamais vu cela auparavant, j'ai testé cela fonctionne bien, il declare un évenement (privé) et l'expose (public)

    J'ai besoin de plus d'informations merci

    IRNBRU

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    add et remove sont aux delegue ce que get et set (a peu près ) sont aux variables.

    Ils te permettent de connecter facilement un evenement d'une classe base à partir de ta classe herité. Ils ne sont donc utilent que si tu fait de l'heritage, sinon tu peux t'en passer .
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  3. #3
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut
    Merci pour toutes ces réponses dev01 peux tu me donner un exemple simple sur comment add et remove permettent d'aider dans l'héritage ? Merci de prendre le temps d'aider

    IRBBRU 8)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Ce post m'a permis de trouver la solution à un problème de syntaxe C# non résolu.

    Une utilisation possible est donc la surcharge d'attribut pour un événement.
    Voir le post : http://www.developpez.net/forums/viewtopic.php?t=444736
    On ne peut pas faire boire un âne qui n'a pas soif.

  5. #5
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    En gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    //Classe de base 
    class MyEventWrapper
    {
       // create an instance of this delegate
       // use the event keyword
       public event SomethingHappened somethingHappened;
     
       // fire the event when appropriate
       public void WhenSomethingHappens()
       {
          // only fire if someone has subscribed
          if(somethingHappened != null)
             somethingHappened();
       }
     
       // expose the event
       public event SomethingHappened SomethingHappenedEvent
       {
          add { somethingHappened += value; }
          remove { somethingHappened -= value; }
       }
    }
     
     
    public class exempleFoireux : MyEventWrapper
    {
     
       public event SomethingHappened MaGestion
       {
          add { base.SomethingHappenedEvent += value;
                  }
     
    //idem pour le remove ;-) 
       }
     
    }
    En fait il te sert à déléguer la gestion de l'evenement à la classe de base tout en faisant croire à l'utilisateur que c'est ton controle qui le gere.
    C'est interressant quand les evenements sont protected par exemples, ou quand tu veux que ton compo soit lui aussi avertit de l'evenement.
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  6. #6
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut
    Merci il faudrait trouver un chapitre sur ce sujet certes pointu mais important merci encore pour l'aide...

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

Discussions similaires

  1. Petite info sur les NumAuto
    Par Virgile59 dans le forum Access
    Réponses: 6
    Dernier message: 28/12/2005, 16h08
  2. [Formation][IUT] Infos sur les iut info, gtr
    Par sand0z dans le forum Etudes
    Réponses: 9
    Dernier message: 14/06/2005, 09h54
  3. Réponses: 3
    Dernier message: 28/10/2004, 08h39

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