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

Windows Forms Discussion :

Problème d'héritahe d'éléments d'attributs privés d'une classe


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de Vonziz
    Inscrit en
    Décembre 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 215
    Par défaut Problème d'héritahe d'éléments d'attributs privés d'une classe
    Bonjour,

    J'ai un petit problème d'héritage assez simple mais je vous pose la question.

    J'ai une classe mère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class DSIChimieCollection_BE : IEnumerator<DSIChimie_BE>, IEnumerable<DSIChimie_BE>
    {
            protected List<DSIChimie_BE> _listDSIChimie;
     
            // Plus des classes qui manipulent la liste
    }
    Et des classes filles de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class DocumentCollection_BE : DSIChimieCollection_BE
    {
            public DocumentCollection_BE() { }
    }
    Comment faire pour que l'attribut _listDSIChimie de la classe mère qui utilise des DSIChimie_BE deviennent un attribut _listDSIChimie dans DocumentCollection_BE qui utilise des Document_BE directement hérité de DSIChimie_BE?

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Bonjour,

    Le mieux que je puisse te proposer est le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class DSIChimieCollection_BE<T> : IEnumerator<DSIChimie_BE>, IEnumerable<DSIChimie_BE> where T : DSIChimie_BE
    {
        protected List<T> _listDSIChimie;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class DocumentCollection_BE : DSIChimieCollection_BE<Document_BE>
    {
        public DocumentCollection_BE() { }
    }
    J'ai utilisé les generics sur ta classe mère DSIChimieCollection_BE. Pour pouvoir quand même manipuler _listDSIChimie, j'ai rajouté une contrainte de type where T : DSIChimie_BE.

  3. #3
    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
    Hello,

    en complément de ce que dit Paul Musso, puisque ta classe est une collection, autant hériter de List<T> plutôt que d'avoir un membre de type List<T>, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class DSIChimieCollection_BE<T> : List<T> where T : DSIChimie_BE
    {
     ...
    }
    PS : _listDSIChimie n'est pas un attribut, c'est un membre. Les attributs, c'est encore autre chose en .Net

Discussions similaires

  1. modifier un attribut privé d'une classe B
    Par adil54 dans le forum Général Java
    Réponses: 8
    Dernier message: 09/02/2011, 14h40
  2. attribut private d'une classe
    Par poukill dans le forum C++
    Réponses: 7
    Dernier message: 24/07/2006, 11h50
  3. Attributs static d'une classe
    Par Edouard Kaiser dans le forum C++
    Réponses: 15
    Dernier message: 04/04/2006, 00h17
  4. attribut partagé d'une classe
    Par tanjonaravelson dans le forum Général Python
    Réponses: 3
    Dernier message: 27/09/2005, 16h26

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