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

Windows Forms Discussion :

[C#2005] Passer en paramêtre le nom d'une variable et non sa valeur


Sujet :

Windows Forms

  1. #1
    Membre éclairé
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Par défaut [C#2005] Passer en paramêtre le nom d'une variable et non sa valeur
    bonjour

    Je voudrai dans mon prog passer en paramêtre le nom d'une variable et non sa valeur. Je m'explique. J'ai un fichier XML dans lequel j'ai des noms d'invites utilisateur et vu que ces invites peuvent avoir plusieurs réponses j'ai mis dans ce fichier une balise qui contient le nom de la variable dans laquelle se trouve la valeur à mettre dans l'invite et je voudrai passer ce nom à mon form.
    petit exemple:

    J'ai une invite qui demande la numéro de la société, la valeur que doit prendre cette invite est stockée dans une variable qui se nomme NumSociete
    donc dans mon fichier XML j'ai ceci:
    <?xml version="1.0" encoding="utf-8" ?>
    <Invites>
    <Invite id="1">
    <NomInvite>Code Société (00)</NomInvite>
    <Param>NumSociete</Param>
    <Description>Code de la société sur 2 chiffres contenu dans lbSociete</Description>
    <Status>Activated</Status>
    </Invite>
    </Invites>
    donc lorsque je lance ma recherche dans mon fichier XML il me trouve le nom de la variable et il doit me retourner la valeur de la balise <Param></Param> à savoir NumSociete.
    Mais mon prog ne doit pas interpréter cela comme une valeur mais comme le nom de la variable numSociete que j'ai déclaré comme ceci dans ce même prog:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for (int Index=0; Index<nbreSociete; Index++)
    string NumSociete=_ListNumSociete[Index].ToString();
    voila j'espère avoir été clair.

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par Herlece Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for (int Index=0; Index<nbreSociete; Index++)
    string NumSociete=_ListNumSociete[Index].ToString();
    Wow, quel code ... il fait rien ...

    'fin bref normalement je ne pense pas que ce soit possible, du moins pas directement. Et de toute façon ça va créer des choses bizarres. Le plus simple serai de passer par un Dictionary :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dictionary<string,string> valeurs = new Dictionary<string,string>();
     
    /* et ensuite tu peut donc faire ... */
    valeurs["NumSociété"] = "Un truc";
     
    /* et pour y accéder */
    var quelquechose = valeurs["NumSociété"];

  3. #3
    Membre éclairé
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Par défaut
    Merci, mais en fait mon code fait quelque chose mais je n'ai pas tout mis. La variable =_ListNumSociete est un arraylist que je rempli avec une listbox puis je parcours chaque valeur pour pouvoir les passer à une invite. J'aurai pu utiliser une instruction foreach mais comme j'ai 2 listbox il me fallait la correspondance entre les 2. Mais si tu as une meilleur solution je suis preneur . Pour le moment je vais essayer ta soluce car je dois faire une démo Mardi.

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par Herlece Voir le message
    Merci, mais en fait mon code fait quelque chose mais je n'ai pas tout mis.
    J'ai supposé

    Non mais de toute façon dès que tu veux pouvoir accéder à des variables avec leur nom amha le mieux c'est un Dictionary. En plus, tu peut mettre ce que tu veux dedans par exemple si ça doit être une liste de personnes tu peut faire :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var quelqueChose = new Dictionary<string, List<Person>>();
    quelqueChose["..."] = liste_de_personnes;

    Et c'est aussi possible avec
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var quelqueChose = new Dictionary<string, object>();
    quelqueChose["..."] = liste_de_personnes;
    Sauf que là pour réaccéder aux valeurs il faudra faire un cast, mais rien de bien méchant.

  5. #5
    Membre éclairé
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Par défaut
    Merci, mais il y a une chose que je ne comprend pas ton "var" tu le trouves comment en C# car je ne le trouve pas, il est dans quelle espace de nom. Existe-il en C# Express

  6. #6
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    C'est du C# 3.0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var quelqueChose = new Dictionary<string, object>();
    =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dictionary<string, object> quelqueChose = new Dictionary<string, object>();
    C'est plus court à écrire en fait, le compilo détermine tout seul le type de quelqueChose.

  7. #7
    Membre éclairé
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Par défaut
    Bon voila le code que j'ai fait peux-tu me dire si c'est bon S'il te plait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /*On lance la recherche grâce à la fonction SearchVariablesByNode contenue dans la classe Data.cs*/
          Variable = Data.SearchVariablesByNode("NomInvite", nomDocInvite);
          Dictionary<string,string> valeurs=new Dictionary<string,string>();
          valeurs["NumSociete"]=_listNumSociete[Index].ToString();
          //Si le noeud est trouvé                       
          if (Variable.NoMatches==false)
          {
                 Variable.Param = valeurs["NumSociete"];
                  boDoc.Variables.get_Item(i).Value = Variable.Param ;
     
          }
    Est-ce que de cette façon je dis bien que ce qui est dans Variable.Param c'est le nom de la variable NumSociete?

  8. #8
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Oui normalement ...

  9. #9
    Membre éclairé
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Par défaut
    Ok je te remercie infiniment.

  10. #10
    Membre éclairé
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Par défaut
    Bon j'ai testé et ça fonctionne nickel, je laisse le post ouvert car j'ai d'autres questions sur ce sujet

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

Discussions similaires

  1. Comment afficher le nom d'une variable et non sa valeur?
    Par philocratia dans le forum Général Python
    Réponses: 2
    Dernier message: 15/05/2014, 13h05
  2. Recomposer nom d'une variable et recupérer sa valeur
    Par casius1206 dans le forum VBScript
    Réponses: 2
    Dernier message: 14/12/2010, 21h38
  3. [XL-2007] nom d'une plage et non sa valeur
    Par nuklr dans le forum Excel
    Réponses: 15
    Dernier message: 05/01/2010, 16h32
  4. Réponses: 16
    Dernier message: 25/10/2005, 08h59
  5. Réponses: 1
    Dernier message: 18/10/2005, 17h31

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