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 :

Variable dans un objet [Débutant]


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Variable dans un objet
    Bonjour,

    Étudient on a un projet de commande de maquette routier, on passe par une dll CmdCrf pour effectuer la communication, mon souci est que la maquette est composer de 4 feux tricolore, par exemple pour tous les mettre au vert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CmdFeux Fx=new CmdFeux () ;
    CmdCrf.feux1.vert=true
    CmdCrf.feux2.orange=true
    CmdCrf.feux3.vert=true
    CmdCrf.feux4.rouge=true
    mais je veux remplacer feux1;feux2;feux3; ou feux4 par feuxN
    ou N est une variable qui va prendre 1;2;3;4
    Comment sa s'appelle l'action permettant ceci ?

    Merci pour une futur réponse

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 11
    Points
    11
    Par défaut suite
    A mon niveau j ai realiser sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    // fex: choix du feux {1,2,3,4}
    // color : couleur du feu  1 vert ; 2 orange ; 3 rouge
    // CmdFeux Dll de commande de la maquette
     static void allum(CmdFeux Fx, int fex, int color)
        {
            switch (fex)
            {
                case 1:
                    {
                        switch (color)
                        {
                            case 1: Fx.Feux1.Vert = true; Fx.Feux1.Orange = false; Fx.Feux1.Rouge = false; break;
                            case 2: Fx.Feux1.Vert = false; Fx.Feux1.Orange = true; Fx.Feux1.Rouge = false; break;
                            case 3: Fx.Feux1.Vert = false; Fx.Feux1.Orange = false; Fx.Feux1.Rouge = true; break;
                        }
                        break;
                    }
     
                case 2:
                    {
                        switch (color)
                        {
                            case 1: Fx.Feux2.Vert = true; Fx.Feux2.Orange = false; Fx.Feux2.Rouge = false; break;
                            case 2: Fx.Feux2.Vert = false; Fx.Feux2.Orange = true; Fx.Feux2.Rouge = false; break;
                            case 3: Fx.Feux2.Vert = false; Fx.Feux2.Orange = false; Fx.Feux2.Rouge = true; break;
                        }
                        break;
                    }
                case 3:
                    {
                        switch (color)
                        {
                            case 1: Fx.Feux3.Vert = true; Fx.Feux3.Orange = false; Fx.Feux3.Rouge = false; break;
                            case 2: Fx.Feux3.Vert = false; Fx.Feux3.Orange = true; Fx.Feux3.Rouge = false; break;
                            case 3: Fx.Feux3.Vert = false; Fx.Feux3.Orange = false; Fx.Feux3.Rouge = true; break;
                        }
                        break;
                    }
                case 4:
                    {
                        switch (color)
                        {
                            case 1: Fx.Feux4.Vert = true; Fx.Feux4.Orange = false; Fx.Feux4.Rouge = false; break;
                            case 2: Fx.Feux4.Vert = false; Fx.Feux4.Orange = true; Fx.Feux4.Rouge = false; break;
                            case 3: Fx.Feux4.Vert = false; Fx.Feux4.Orange = false; Fx.Feux4.Rouge = true; break;
                        }
                        break;
                    }
            }
        }
    Je trouve que sa fait central nucleair , Comment je pourrais simplifier ce code pour faire quelque chose de plus propre et potable ?

    Merci

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Sans passer par des tableaux, voici une petite simplification:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    static void allum(CmdFeux Fx, int fex, int color) // 1 vert ; 2 orange ; 3 rouge
    {
      Feux FeuxFex; // en supposant que Fx.Feuxi est de type "Feux"
      switch (fex)
      {
        case 1: FeuxFex=Fx.Feux1 ; break ;
        case 2: FeuxFex=Fx.Feux2 ; break ;
        case 3: FeuxFex=Fx.Feux3 ; break ;
        case 4: FeuxFex=Fx.Feux4 ; break ;
      }
      FeuxFex.Vert = false ; FeuxFex.Orange = false; FeuxFex.Rouge = false;
      switch (color)
      {
        case 1: Feux1Fex.Vert   = true; break;
        case 2: Feux1Fex.Orange = true; break;
        case 3: Feux1Fex.Rouge  = true; break;
      }
    }
    Mais il serait préférable revoir les classes ou les structures en utilisant des tableaux.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Merci
    beaucoup pour cette idée et cette réponse rapide
    Sa marche du tonnerre

    Il a t'il une autre technique pour obtenir ce resultat

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Utiliser les tableaux, c'est par exemple de déclarer CmdFeux comme une classe avec une liste de feux et intégrer dans la classe la procédure allum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Class CmdFeux : List<Feux>
    {
       public CmdFeux() { for (int i=1;i<4;i++) Add(new Feux()) ; }
     
       void allum(CmdFeux Fx, int fex, int color) // 1 vert ; 2 orange ; 3 rouge
      {
        Feux FeuxFex=this[fex]; 
        FeuxFex.Vert = false ; FeuxFex.Orange = false; FeuxFex.Rouge = false;
        switch (color)
        {
           case 1: FeuxFex.Vert     = true; break;
           case 2: FeuxFex.Orange = true; break;
           case 3: FeuxFex.Rouge  = true; break;
         }
        }
      }
    Et peut-être aussi remplacer les attributs Vert, Orage et Rouge par un attribut CouleurDuFeu qui vaudrait 1, 2 ou 3. "allum" se résumerait alors à une seule instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this[fex].CouleurDuFeu= color ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    On m'oblige a utiliser cette dll, et je crois que il a un tableau mais je ne sais pas comment m’en servir, le tableau serait .LesFeux[]
    Par exemple pour voir ce qui contenait j ai fait un foreach mais impossible d’écrire quelle que chose .
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Passer une variable dans un objet URL
    Par Mouke dans le forum Android
    Réponses: 2
    Dernier message: 16/04/2014, 08h31
  2. accéder à une variable dans un objet dans un tableau
    Par eprevot dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2013, 08h53
  3. Récupération de variable dans un objet XBase
    Par jcachico dans le forum kettle/PDI
    Réponses: 1
    Dernier message: 05/01/2012, 10h41
  4. Moitié de variable dans un objet windows.document
    Par kryogen dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/06/2009, 16h34
  5. Insérer une variable dans l'objet windows.document
    Par kryogen dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/06/2009, 15h24

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