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 :

Q: Objet hérite d'une classe parente ?


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Points : 121
    Points
    121
    Par défaut Q: Objet hérite d'une classe parente ?
    Bonjour.
    A l'aide de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (this.wizard.SelectedPage.Controls[i].GetType() == typeof(WizIntPag1))
    , je sais si un objet (ici, une page d'un wizard) est d'une certaine classe (ici, 'WizIntPag1').
    Par quel subterfuge remplacer 'typeof()' pour savoir si un objet hérite d'une classe parente (et créée moi-même) que je propose (p.ex. 'AllWizIntPag) ?
    D'intérêt général, non ?
    Merci d'avance.

    J'utilise Windows.Forms, éventuellement WinForm, mais pas WPF.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 51
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Je ne comprends pas très bien, dans la condition tu veux savoir si l'objet :
    this.wizard.SelectedPage.Controls[i].GetType() est un fils d'une classe parent AllWizIntPag, ou du moins si cette objet hérite de cette classe parent ?

    As-tu essayé les mots clefs 'As' ou 'is' par exemple ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Points : 121
    Points
    121
    Par défaut
    Super, Neodream, 'is' fontionne, à condition que j'ôte le '.GetType()' .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (this.wizard.SelectedPage.Controls[i] is AllWizIntPag)
    Sempiternels, mes remerciements.

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 162
    Points : 64
    Points
    64
    Par défaut
    Petite précision, le 'is' est parfait pour ce que tu veux faire ici.
    Par contre, si tu comptes utiliser 'this.wizard.SelectedPage.Controls[i]' en tant que type 'AllWizIntPag', il est fortement recommandé de faire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    AllWizIntPag wizard = this.wizard.SelectedPage.Controls[i] as AllWizIntPag;
    if(wizard != null)
    {
      //...
    }
    Les opérateurs 'is' et 'as' utilisent la réflection qui est un mécanisme très couteux en performances donc il faut minimiser leurs emplois.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/08/2014, 20h07
  2. Réponses: 4
    Dernier message: 05/12/2010, 21h30
  3. [CS3] Supprimer un objet crée dans une classe parent
    Par renaud26 dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 28/10/2010, 00h15
  4. Réponses: 10
    Dernier message: 31/05/2010, 14h53
  5. Conception d'une classe parente
    Par VincentB dans le forum Langage
    Réponses: 9
    Dernier message: 24/06/2003, 17h28

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