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 :

[C#.Net] Héritage et Reflection


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 359
    Par défaut [C#.Net] Héritage et Reflection
    Bonjour,

    Voici un membre d'une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        public class MaClass1 {
     
            public string info = System.Reflection.MethodInfo.GetCurrentMethod().DeclaringType.Name;
    }
    Je dérive cette classe, et je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public class MaClass2 : MaClass1 {
    string test = this.info;
    }
    Bien entendu la variable test prend la chaine "MaClass1", mais en fait j'aimerai qu'elle prenne la valeur "MaClass2" (la class dérivée)

    Est-ce que je m'y prend mal ?
    Tout ça, pour éviter de re-écrire dans chaque class qui dérive :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            string info = System.Reflection.MethodInfo.GetCurrentMethod().DeclaringType.Name;
    Merci

  2. #2
    Membre Expert Avatar de Tober
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 824
    Par défaut
    Je ne vois qu'une possibilite :
    Ecrire une fonction qui renvoi le nom de la classe ou elle est appele...

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 359
    Par défaut
    Citation Envoyé par Tober Voir le message
    Je ne vois qu'une possibilite :
    Ecrire une fonction qui renvoi le nom de la classe ou elle est appele...
    C'est facile ça ?
    En tout cas je vais essayer !

    Merci

  4. #4
    Membre Expert Avatar de Tober
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 824
    Par défaut
    Aucune idee, tu utilises System.Reflection.MethodInfo.GetCurrentMethod().DeclaringType.Name dans ton exemple, peut etre qu'en le mettant ds une fonction que tu instancie que ds la classe mere, ca marchera...

  5. #5
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Pourquoi tu passes pas un truc aussi alambiqué ?
    this.GetType() ça ne suffit pas ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 359
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    Pourquoi tu passes pas un truc aussi alambiqué ?
    this.GetType() ça ne suffit pas ?
    J'ai donc ajouté une méthode dans ma class1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            public string Info()
            {
                return this.GetType().Name;
            }
    Et quand je l'appelle depuis les classes dérivée, j'obtiens bien le nom de la class dérivée... ça tombe bien, c'est ce que je veux !

    Merci pour le coup de pouce, problème résolu !

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

Discussions similaires

  1. [VB.NET]Héritage : valeur d'une propriété perdue
    Par denilson dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/07/2006, 11h50
  2. [VB.Net] héritage multiple
    Par Cirdan Telemnar dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/06/2006, 16h37
  3. Réponses: 7
    Dernier message: 18/04/2006, 14h59
  4. [vb.net][form] probleme avec l'héritage
    Par graphicsxp dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/10/2005, 16h01
  5. [VB.NET] Events + Héritage
    Par BenoitM dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/02/2005, 09h32

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