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 :

probleme d'event avec heritage


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut probleme d'event avec heritage
    Tout d'abord, bonne année à tous !

    Je me retrouve face à un probleme que je n'avais pas prévu...

    J'ai une classe de base avec des events statics.

    Visiblement, il n'est pas possible dans une classe fille de déclencher ces events; c'est comme si on etait dans une classe totalement exterieur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Class Papa
    {
       public static event EventHandler Started
    }
     
    Class Fils : Papa
    {
    Public void Raise()
    {
       if(Started!= null)
           Started(null,EventArgs.Empty); //=> le Compilateur refuse :(
    }
    }
    Ca m'embete beaucoup car:
    1) le soft est deja en prod
    2) aujourd'hui je dois créer une classe Fille avec les memes events, demain ca sera la classe Cousin, PtitFils, etc...

    Auriez vous des suggestions pour contourner ce probleme, tout en garantissant que les autres dev n'oublieront pas d'implementer ces events dans les futures classes enfant à venir?

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Par défaut
    Implémente une méthode "protected" dans la classe "Papa" qui lance l'événement.


    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
    Class Papa
    {
       public static event EventHandler Started
     
         protected void Raise()
         {
            if(Started!= null)
              Started(null,EventArgs.Empty); 
     
         }
    }
     
    Class Fils : Papa
    {
        Public void Raise()
        {
            base.Raise();
         }
    }

  3. #3
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    D'accord mais alors plutôt comme ça :
    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
    Class Papa
    {
       public static event EventHandler Started
     
         protected virtual void Raise()
         {
            if(Started!= null)
              Started(null,EventArgs.Empty); 
     
         }
    }
     
    Class Fils : Papa
    {
        Protected override void Raise()
        {
            base.Raise();
            //ici le code propre à Fils...
         }
    }
    yes bacelar !

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 505
    Par défaut
    Manquerait pas un petit "virtual" dans la classe Papa ?

Discussions similaires

  1. probleme avec heritage
    Par padawan78 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 31/03/2008, 21h03
  2. Réponses: 6
    Dernier message: 04/04/2003, 15h28
  3. [Kylix] Probleme de séparateur avec Kylix2 ?
    Par jeanphy dans le forum EDI
    Réponses: 4
    Dernier message: 10/02/2003, 16h41
  4. Réponses: 12
    Dernier message: 23/10/2002, 11h56
  5. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26

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