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 :

Problème Enum et case


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut Problème Enum et case
    Bonjour,
    Pouvez vous me dire comment résoudre ce problème :

    J'ai un tableau. Dans une colonne je dois afficher une donnée qui est listée dans une énum. (valeur et donnée sont de type string)

    enum :
    [donnée1] valeur1,
    [donnée2] valeur2,
    ...

    Pour cela J'ai fait un switch .
    Problème : j'ai une erreur qui me dit qu'une constante est attendue dans le case.

    switch ( Valeurdanstableau)
    {
    case monobjet.Enum.Valeur1.ToString():
    afficher donnée1
    break;

    case monobjet.Enum.Valeur2.ToString():
    afficher donnée2
    break;
    }


    Merci pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Par défaut
    Hello
    en fait c'est normal que ça ne fonctionne pas car dans case tu ne peux donner que des constant-expression.

    ce que tu peux faire qui fonctionne (mais pas sur que ça corresponde à ton besoin) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void TestSwitchCase(MonEnum enumeration)
    {
    switch(enumeration)
    {
    case MonEnum.Valeur1:
    // ton code ici;
    break;
    //...
    }
    }
    Bien Cordialement,

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut
    Merci.

    c'est embetant, je vais devoir passer par des if.

    Si je dois afficher une image dans une colonne en fonction de la valeur d'une autre colonne, quelle est la meilleure marche à suivre ?

    (en sachant que le nombre de valeurs, et donc d'images est limité, une dizaine environ)

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Par défaut
    Je ne c'est pas de quel control graphique tu parles..
    Mais si tu utilises les controles graphique .Net il est d'usage d'exploiter la propriété Tag (de type object) et de travailler directement avec un pointeur sur ton objet..
    Après si ton objet metier est bien fait il devrait pouvoir signaler par un évenement le changement de ces propriétés..

    Pour le switch tu as un snippet .Net pour ça (tu tappe switch puis TAB) où, si tu lui donne une variable de type enum, il te génère les cases automatiquement

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut
    C'est un programme que je reprends (excusez, je débute en .net)

    J'ai un objet data, un objet métier.
    Dans le formulaire, le contrôle pour afficher les données est un Gridview.


    pour l'instant, comme je ne peux pas faire de case j'ai fait un if pour chaque cas dans le rowdatabound.

    if (((ObjetMetier)e.Row.DataItem).valeur == Enum.valeur.ToString())
    {
    ((Image)e.Row.Cells[3].FindControl("image")).ImageUrl = enum.donnée);
    }

Discussions similaires

  1. Problème dans une enum avec case
    Par spyke brain dans le forum Langage
    Réponses: 11
    Dernier message: 26/06/2014, 16h20
  2. Problèmes avec des cases à cocher et une liste déroulante
    Par rob2-9 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/01/2006, 10h52
  3. Problème avec les cases à cocher
    Par psycopat dans le forum Access
    Réponses: 8
    Dernier message: 20/10/2005, 14h25
  4. Problème avec les cases d'un groupe d'option.
    Par auriolbeach dans le forum Access
    Réponses: 2
    Dernier message: 01/10/2005, 07h33
  5. [Tableaux] Problème avec Switch case
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 16h37

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