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 :

[C#] recuperer le nom d'une variable


Sujet :

C#

  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut [C#] recuperer le nom d'une variable
    Bonjour,

    je vous donne un programme d'exemple pour appuyer ma question :
    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
    using System;
     
    namespace Test
    {
        class Program
        {
            static void Main(string[] args)
            {
                int t1 = 1;
                int t2 = 2;
                int[] tab = new int[2];
                tab[0] = t1;
                tab[1] = t2;            
            }
        }    
    }
    Ce que je cherche à faire depuis ce matin : on ne sait jamais à l'avance ce que le tableau tab va recevoir t1 ou t2. J'aimerais savoir s'il existe une méthode du genre tab[0].methodeEnQuestion() qui me revoit si c'est t1 ou t2 qui est dans tab[0]. Merci de votre aide.

  2. #2
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    c est impossible avec les champs de type value !
    (c'est pas la reference de t1 ou t2 qui est dans tat mais leur valeur)

    On ne reference pas un champs de type value, par opposition aux champs de type reference.

    Utilise un type reference!

  3. #3
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par ZaaN Voir le message
    Utilise un type reference!
    Je dirais plutôt : à quoi ça te servirait ? En quoi le fait de savoir que t'as mis t1 dans tab[0] est utile, puisque tu le sais (statiquement), puisque c'est toi qui l'a mis dedans ?

  4. #4
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Je dirais plutôt : à quoi ça te servirait ? En quoi le fait de savoir que t'as mis t1 dans tab[0] est utile, puisque tu le sais (statiquement), puisque c'est toi qui l'a mis dedans ?
    Tout d'abord merci de vos réponses. Je vais essayer de te répondre avec précision. Imagine qu'en fait mon tableau est un tableau à deux dimensions du genre échiquier sur lequel se trouvent tout un tas de pièces. Pour dire à un objet Piece si la case où il veut aller est une bonne case en cas de prise par exemple il doit récupérer le nom de la variable du genre tb1n pour une tour de couleur noire. Mais bon c'est ma façon d'aborder le problème.

  5. #5
    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
    Ce ne serait pas plus simple d'avoir des pièces dans chaque case de ton "échiquier". Chaque pièce ayant une couleur (noir ou blanc) et un type (pion, tour, cavalier, fou, reine et roi). Chaque pièce sait également comment elle peut se déplacer (les cases où elle peut aller) en fonction de ce qu'il y a sur l'échiquier.

    A partir de là tu te fais une classe Piece pour gérer tout ça. C'est juste une idée en très gros

  6. #6
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    Citation Envoyé par StormimOn Voir le message
    Ce ne serait pas plus simple d'avoir des pièces dans chaque case de ton "échiquier". Chaque pièce ayant une couleur (noir ou blanc) et un type (pion, tour, cavalier, fou, reine et roi). Chaque pièce sait également comment elle peut se déplacer (les cases où elle peut aller) en fonction de ce qu'il y a sur l'échiquier.

    A partir de là tu te fais une classe Piece pour gérer tout ça. C'est juste une idée en très gros
    Merci je vais regarder de ce côté là.
    A bientôt

  7. #7
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Les noms de variables ne sont pas faits pour porter une information utilisable au moment de l'exécution du programme. La réflexion permettrait peut être de le faire, mais je suis pas sûr de faire du code dont le comportement change selon qu'une variable s'appelle toto ou titi soit une bonne chose.

    Comme dit StorimimOn, tu peux faire une classe Pièce, lui donner une propriété qui indique quel est son type et sa couleur, et zou !

  8. #8
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Les noms de variables ne sont pas faits pour porter une information utilisable au moment de l'exécution du programme. La réflexion permettrait peut être de le faire, mais je suis pas sûr de faire du code dont le comportement change selon qu'une variable s'appelle toto ou titi soit une bonne chose.

    Comme dit StorimimOn, tu peux faire une classe Pièce, lui donner une propriété qui indique quel est son type et sa couleur, et zou !

    Tout d'abord merci pour vos réponses.
    j'avais fait une classe Pieces avant de vous poser la question dans le forum et aussi une classe Echiquier dans laquelle j'avais une mis private static string[,] echiquier; de façon à ce quelle soit accessible par toutes les pièces instanciées. Mais problème était de savoir quelle était la pièce qui se trouvait à un moment donné dans la case A1 par exemple. Lorsque j'ai posé la question dans le forum (je débute en c#) je n'avais pas encore réalisé mon erreur en pensant que l'on pouvait récupérer le nom d'une variable après avoir fait un passage du genre tab[0] = v1. Mais j'ai trouvé une solution au moment j'instancie ma variable. Je fais Tour t1b = new Tour("Blanche", true, "A1", "tb1"); où je mets en string le nom de ma variable tb1.
    J'espère avoir été précis dans ma façon de m'exprimer. Si je l'ai été c'est que j'ai bien compris ce dont je parle
    A bientôt.

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

Discussions similaires

  1. Module dont le nom est une variable
    Par Mr Hyde dans le forum Général Python
    Réponses: 11
    Dernier message: 26/02/2023, 20h39
  2. Recuperer le nom d'une variable dans une variable String
    Par aliwassem dans le forum Langage
    Réponses: 11
    Dernier message: 23/10/2009, 12h38
  3. Réponses: 37
    Dernier message: 02/03/2006, 01h58
  4. Incrémenter le NOM d'une variable
    Par Mors_Ubyte dans le forum Access
    Réponses: 1
    Dernier message: 03/01/2006, 18h47
  5. [Reflection] Connaître le nom d'une variable ...
    Par dahwoud dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/08/2005, 14h37

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