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 :

TypeOf, Gettype, == is et les autres


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut TypeOf, Gettype, == is et les autres
    Bonsoir

    J'avoue me perdre régulierement dans la jungle des 1001 maniere de traiter les Types en .NET
    Et franchement ni google ni msdn ne sont des amis sur ce coup la

    Exemple :

    Je souhaite tester le type d'un control lors d'un click de dgv

    je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          System.Type Tp = DgvK.Columns[col].ValueType;
          if (Tp != typeof(System.Boolean))
          {
            return;
          }
    Ca marche evidement

    Et puis je me dis que j'aimerais construire un case sur ce test
    Ensuite je considere que devoir passer par un TypeOf est quand meme un peu bateau
    Enfin je me souviens que j'avais vu que le 'is' peut etre utilisé sur ce genre de test
    Et finalement apres 15 minutes de recherches infructueuses je viens chercher de l'aide et du réconfort parmis vous avant d'ecrire une usine a gaz !

    Merci de votre aide

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Comme ça, je te dirais déjà par commencer en relisant la MSDN pour ces trois points et ensuite on en rediscute en fonction de ce qui ne te semble pas clair, citation à l'appui éventuellement

    Mot clé is
    Mot clé typeof
    Méthode GetType

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci Stormimonn

    Mais la msdn et moi on n'est vraiment pas des amis sur ce coup la
    RIEN a mes yeux n'explique clairement dans tout ce blabla comment tester proprement un type de maniere native

    La seule maniere brute force que je vois (et que j'ai d'ailleurs vu un peu partout) c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
          System.Type Tp = DgvK.Columns[col].ValueType;
          switch (Tp.ToString())
          {
            case "System.Boolean":
              break;
     // etc...
          }
    Mais ca me déplait fondamentalement car les Tostring() dans ce genre de contexte ca me gonfle vraiment !

  4. #4
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Cette solution t'intéressera surement.

    Sinon, évidemment qu'utiliser les string n'est pas une bonne chose, tu peux t'en passer en faisant comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    switch typeof(e) {
    case int:    ... break;
    case string: ... break;
    case double: ... break;
    default:     ... break
    }
    En espérant t'avoir aidé.

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/02/2005, 12h04
  2. Réponses: 6
    Dernier message: 15/06/2004, 10h26
  3. unicité de champ les uns envers les autres
    Par Jovial dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 16/04/2004, 08h34
  4. Réponses: 17
    Dernier message: 15/10/2003, 01h45
  5. Réponses: 2
    Dernier message: 09/07/2003, 14h10

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