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 :

Procédure enfant appelée par le parent


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 23
    Points
    23
    Par défaut Procédure enfant appelée par le parent
    Bonjour,

    Je ne vais pas vous expliquer mon projet car il est compliqué mais en gros voici mon problème :

    J'ai une classe abstraite avec un constructeur , une méthode appelé par un évenement backgoundworker et une méthode de traitement
    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
    38
    39
    40
     
    namespace testA_B
    {
        public class A
        {
            public BackgroundWorker bgw = new BackgroundWorker();
            public int i;
     
            public A()
            {
                i = 0;
                this.bgw.DoWork += new DoWorkEventHandler(bgw_DoWork);
                if (bgw.IsBusy != true)
                {
                    bgw.RunWorkerAsync();
                }
            }
     
            protected void bgw_DoWork(object sender, DoWorkEventArgs e)
            {
                this.traitement();
            }
     
            protected void traitement()
            {
                this.i += 1;
            }
        }
     
        public class B : A
        {
            public int j;
            new protected void traitement() 
            {
                this.i += 1;
                this.j += 1;
            }
        }
     
    }
    J'aimerais que lorsque je crée un objet de classe B , le bgw appelle la méthode "traitement" de la classe B et non celle de la classe parente ce qui est le cas actuellement.

    Donc en résumé :

    incrémente "i" ET "j"

    Merci de votre aide

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Points : 169
    Points
    169
    Par défaut
    Peut-être en passant la métode de ta classe A en virtual et dans ta classe B en remplaçant new par override ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected virtual void traitement()
    {
         this.i += 1;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protected override void traitement() 
    {
         this.i += 1;
         this.j += 1;
    }

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Merci , ça marche

    Impeccable

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/09/2012, 14h58
  2. Appel par bouton d'une procédure avec argument
    Par defluc dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/05/2012, 15h48
  3. Passer une variable à une procédure appelé par onaction
    Par patbou dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/10/2008, 14h42
  4. Passage d'un type procédure en paramètre par défaut
    Par Floverdoz dans le forum Langage
    Réponses: 1
    Dernier message: 22/07/2005, 17h48
  5. [CR10][ASP] Rapport appelé par asp vide...
    Par Gul Greg dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 25/11/2004, 16h41

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