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 :

Vérifier que ma variable contient bien une valeur de ma structure


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut Vérifier que ma variable contient bien une valeur de ma structure
    Bonjour,

    j'utilise la structure pour la première fois parce que j'ai une variable qui ne peux prendre que 6 valeurs (en base je fais un check pour voir si elle est égale à une de ces valeurs).

    donc j'ai ma structure (incomplète encore):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public struct TypeCategorie
            {
               public static const string Secteur = "Secteur";
               public static const string Complexe = "Complexe";
            }
    et ma variable qui prend une de ces valeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     public string Categorie
            {
                get;
                set
                {
                    if (value == TypeCategorie.Secteur)
                    { Categorie = value; }
                    else
                    { throw new Exception("La catégorie d'exploitation est incorrecte: elle doit correspondre a secteur, complexe..."); }
                }
            }
    je voulais déjà savoir si ce code était correcte et si c'était possible de vérifier si ma variable était bien égale à un des champs de ma structure sans faire la vérification champs par champs.

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Si TypeCategorie était une classe, tu pourrais lui affecter une méthode statique du type
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    public static boolean IsTypeCategorie(String value) { ... }

    Ca serait sans doute plus propre que de tout tester dans ta classe consommatrice.

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    ça revient à faire une vérification champs par champs?
    je voulais savoir s'il existait un moyen de faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public string Categorie
            {
                get;
                set
                {
                    if (value == ValueOf(TypeCategorie))
                    { Categorie = value; }
                    else
                    { throw new Exception("La catégorie d'exploitation est incorrecte: elle doit correspondre a secteur, complexe..."); }
                }
            }
    Une fonction déjà toute faite qui permettrait de faire ça?

  4. #4
    Membre émérite Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Par défaut
    Et pourquoi pas une enum ça simplifierait la chose non ?

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    le problème de l’énumération c'est qu'il ne peut pas renvoyer de string ce qui reviendrait à faire un switch derrière pour récupérer la string correspondant a mon enum alors qu'avec la structure je peut directement affecté une string en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Exploitation test=new Exploitation();
    test.Categorie = Exploitation.TypeCategorie.Secteur;

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    bon bein on va faire une vérification champs par champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private bool IsTypeCategorie(string value)
            {
                bool ok = false;
                if (value == TypeCategorie.Complexe || value == TypeCategorie.Secteur)
                { ok = true; }
     
                return ok;
            }

  7. #7
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Tu pourrais utiliser le mot clé IS si tu construisais tes avec la classe TypeCategorie, mais à mon avis tu les construits avec String...

    (Et ça ferait une utilisation farfelue...)

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

Discussions similaires

  1. Comment vérifier qu'un textbox contient bien que des chiffres..
    Par thomasmrl dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/05/2013, 22h56
  2. vérifier si une requete renvoie bien une valeur
    Par ssisssou dans le forum Langage
    Réponses: 1
    Dernier message: 17/03/2010, 12h32
  3. Réponses: 0
    Dernier message: 15/08/2007, 16h36
  4. Réponses: 1
    Dernier message: 08/08/2007, 18h07
  5. vérifier que l'utilisateur entre bien une heure
    Par youp_db dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2006, 11h15

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