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

Framework .NET Discussion :

Comment différencier un type "System" d'un type perso ?


Sujet :

Framework .NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 19
    Par défaut Comment différencier un type "System" d'un type perso ?
    Bonjour tout le monde,

    J'aimerais pouvoir différencier les types "System" (Int32, String, Float, StringBuilder, etc..) des types que j'aurais moi-même ajouté (MaClasse, MaStructure, etc...).

    Est-ce possible ? Si oui, comment ?

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 19
    Par défaut
    Alors première réponse à moi-même.

    En testant Type.Fullname :


    Si TypeATester.Fullname commance par ("System.") --> Type système

    Sinon --> type perso.


    C'est pas très sexy, mais ça a l'air de fonctionner.

    Si quelqu'un a une autre méthode, je suis preneur!

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Salut,

    D'abord pourquoi est-ce que tu voudrais faire ça ? C'est louche. .

    Ensuite à mon avis mieux vaut tester ton propre namespace pour être sûr qu'il s'agit bien de tes objets car il existe bien d'autres namespaces qui ne sont pas à toi autre que system. ça donnerait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(TypeAtester.FullName.StartsWith("MonNamespace")) // alors c'est ton objet

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 19
    Par défaut
    Ben oui et non, si j'ai des objets dans plusieurs Namespace différent, il faurdait que je test chaque namespace.


    Quoi qu'il en soit, c'est bien en testant la propriété Text.

  5. #5
    Membre éclairé Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Par défaut
    Je comprend bien sur pas à quoi ça te sert, mais...

    un truc plus joli serait de faire hériter de tous tes type d'un interface vide. (IMyType.)

    et de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tonType.isFamily(IMyType);
    ou un truc comme ça (je le fais de tête)

  6. #6
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Et comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If (monObjetATester is maStructure) ...
    If (monObjetATester is maClasse) ...
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    switch(true)
    {
    case monObjetATester is maStructure:
    //Traitement
    case monObjetATester is maClasse:
    //Traitement
    default:
    //Traitement
    }

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 19
    Par défaut
    bilBot <<< Effectivement c'est aussi une solution.

    Kelpan <<< J'avais aps pensé au "switch(True)" c'est pas idiot.


    Merci pour votre aide les gars.

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

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