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.
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.
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!
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
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.
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 faireou un truc comme ça (je le fais de tête)
Code : Sélectionner tout - Visualiser dans une fenêtre à part tonType.isFamily(IMyType);
Et comme ceci ?
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 If (monObjetATester is maStructure) ... If (monObjetATester is maClasse) ...
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 }
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.
Partager