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

WinDev Discussion :

[Windev 9] équivalent de l'opérateur instanceof


Sujet :

WinDev

  1. #1
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut [Windev 9] équivalent de l'opérateur instanceof
    Salut,

    je voudrais tester si un objet est une instance d'une certaine classe ou d'une classe dérivée.
    A priori il n'existe pas d'opérateur instanceof et je n'ai pas trouvé d'équivalent.

    J'ai réussi à tester si un objet est une instance d'une classe donnée avec la propriété "Classe". Cependant je ne vois pas comment tester si l'objet est une instance d'une classe dérivée.

    Un exemple, soit les classes :
    • ClasseA
    • ClasseB qui hérite de ClasseA

    Pour tester si un objet "obj" est une instance de ClasseA il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF obj..Class = "ClasseA" THEN
    Cependant je voudrais que si "obj" est une instance de ClasseB (ou de toutes autres classes héritant de ClasseA) cela renvoie également vrai.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  2. #2
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Réponse peut-être idiote : créer une méthode instanceof dans la classe A initialisée avec "CLASSA".

    Tu ne surcharge pas la méthode dans ta déclaration de B

    quand tu feras B:instanceof cela te renverra CLASSA
    Emmanuel Lecoester
    => joomla addict.

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    J'avais pensé à cette solution, le problème est que si je veux faire un "instanceof" uniquement sur la classe ClasseB (et ses éventuelles classes filles) et plus sur la ClasseA, ça ne marchera pas.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  4. #4
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Oui mais si C hérite de B qui hérite de A tu veux quoi ?

    C.instanceof : ClassB ou ClassA ?

    B.instanceof : ClassA ?
    Emmanuel Lecoester
    => joomla addict.

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Pour illustrer : soit les objets objA, objB et objC respectivement des instances des classes ClasseA, ClasseB et ClasseC.
    La classe ClasseC hérite de ClasseB qui elle même hérite de ClasseA.

    En gros je voudrais un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    objA instanceof ClasseA // True
    objB instanceof ClasseA // True
    objC instanceof ClasseA // True
     
    objA instanceof ClasseB // False
    objB instanceof ClasseB // True
    objC instanceof ClasseB // True
     
    objA instanceof ClasseC // False
    objB instanceof ClasseC // False
    objC instanceof ClasseC // True
    Enfin, voilà l'idée.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  6. #6
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Points : 140
    Points
    140
    Par défaut modif java en windev
    Bonjour,
    à priori il n'y a pas d'équivalent en WinDev pour ce que tu cherches...
    Mais en suivant la piste de elecoest, tu peux créer une méthode instanceof(nomDeLaClasse) dans CLASSA qui retourne vrai si nomDeLaClasse=CLASSA, faux sinon.
    Dans CLASSB, tu la surcharges : elle retourne vrai si nomDeLaClasse=CLASSB OU nomDeLaClasse=CLASSA (classe mère de CLASSB => ancêtre:instanceOf(nomDeLaClasse) ), faux sinon.
    De même pour CLASSC.

    Je pense que ça pourra t'aider.

  7. #7
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    J'ai effectivement fait un truc dans le genre et ça marche mais c'est dommage qu'il faille obligatoirement surcharger la méthode dans chaque classe.

    Merci pour votre aide à tout les deux .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  8. #8
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Points : 140
    Points
    140
    Par défaut correction java en windev
    c'est dommage qu'il faille obligatoirement surcharger la méthode dans chaque classe
    Entièrement d'accord.

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

Discussions similaires

  1. Factories et opérateur instanceof en ES5
    Par SylvainPV dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 16/03/2015, 19h31
  2. Réponses: 9
    Dernier message: 31/03/2011, 16h32
  3. Réponses: 4
    Dernier message: 08/09/2008, 15h14
  4. Réponses: 22
    Dernier message: 16/01/2008, 16h43
  5. OpenDialog : cherche équivalent Windev
    Par Harry dans le forum WinDev
    Réponses: 2
    Dernier message: 29/03/2007, 17h29

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