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#] Accèder à l'instance de la classe mère


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut [C#] Accèder à l'instance de la classe mère
    Bonjour à tous,
    Comment accède-t-on à l'instance de la classe mère.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class Animal
    {
        notifierChangement(Object unObjet) {}
    }
     
    public class Chien : Animal {}
    public class Chat : Animal {}
     
    public static void Main() 
    {
        Animal a = new Animal();
    }
    Comment puis-je accèder dans le corps de Chien et Chat à l'instance de Animal? Je voudrais que la méthode notifierChangement soit accessible à Chien et Chat via l'instance a (Donc pas par le mot clé base).
    Si quelqu'un a une idée...
    Je sens que c'est encore une erreur de conception...

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113

  3. #3
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    J'y avais pensé, mais ça me force à instancier la classe où se trouve l'instance de la classe Animal.
    C'est pas très pratique. Il n'y a pas un autre moyen (mis à part static)? Par réflexion par exemple?
    Merci...

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Citation Envoyé par dahtah Voir le message
    J'y avais pensé, mais ça me force à instancier la classe où se trouve l'instance de la classe Animal.
    C'est pas très pratique. Il n'y a pas un autre moyen (mis à part static)? Par réflexion par exemple?
    Merci...
    Salut,

    ton propos n'est pas tres clair, mais si ta methode est protégée, tu peux y acceder depuis toute ta hierarchie de derivées, pas besoin d'instancier un autre objet puisqu'un chien est intrinsequement un animal, donc dans une methode de chien, tu peux sans probleme utiliser une methode protected d'une ou de la classe de base.

  5. #5
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    de plus, "base" te renvoie bien une instance d'Animal (en exagérant, cela te renvoie ton Chien casté en Animal)

  6. #6
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Merci de vos réponse.
    Dans chacune de mes classes dérivées, j'aimerai pouvoir faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a.notifierChangement();
    a étant l'instance de la classe mère animal. a étant instancié dans un autre package.
    Je vais essayer d'expliquer ce que je veux faire. Dans mon point d'entrée de mon programme, je crée une instance de la classe Animal.

    Point d'entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Animal a = new Animal();
    C'est mon poit d'entrée de la couche model. Cette classe est passée en paramètre au constructeur du controlleur de Animal.

    Controlleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ControlleurAnimal c = new ControlleurAnimal(a);
    a peut donc enregistrer des vues à notifier dans le controlleur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a.register(IAbstractVue vue);
    .
    Jusque là nickel.

    Modèle :
    Mais la classe Animal possède des classes dérivées dans la couche modèle. Dans ces classes dérivées je souhaiterai faire par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Chien
    {
        private String manger;
     
        public String Manger {
            set { return manger; }
            get { manger = value;
                    a.notifyChange(new mangerChangedEvent(manger));
            }
    }
    Je dois donc accèder à l'instance de a pour annoncer les changements du modèle à la vue (Pattern Observer).
    Voili, voilou...
    Merci...

  7. #7
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Citation Envoyé par dahtah Voir le message
    Je sens que c'est encore une erreur de conception...
    J'en ai l'impression, mais j'avoue n'avoir rien compris à ta demande. Essaye un autre exemple, avec d'autres explications (sur ton pb mais aussi sur ton but final, car il y a surement une autre façon d'y arriver).
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

Discussions similaires

  1. Accéder à des instances statiques de classe
    Par mulfycrowh dans le forum C++
    Réponses: 7
    Dernier message: 28/12/2012, 09h05
  2. Accèder à une classe fille depuis la classe mère
    Par Phreak0x dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/10/2008, 10h14
  3. accéder à un attribut de la classe mère
    Par gorgonite dans le forum Ruby
    Réponses: 10
    Dernier message: 11/03/2008, 12h42
  4. Accéder à toutes les instances d'une classe
    Par MrGecko dans le forum Delphi
    Réponses: 15
    Dernier message: 14/05/2007, 00h50
  5. [VB.NET]Accéder à différentes instances d'une classe
    Par Cotte Cotte Coq dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/12/2006, 13h14

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