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 avec une variable de type objet


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 24
    Points
    24
    Par défaut Problème avec une variable de type objet
    Bonsoir à tous

    Je suis entrain de bosser sur des projets pour les cours et je me heurte à un petit problème. Le projet en question est celui d'un Pendu.

    J'ai deux types de partie, multi-joueur et solo. Peut importe le type de partie choisie, je vais avoir une premiere variable de type joueur qui va etre crée. Ensuite, en fonction du type de partie (multi-joueur ou non) une deuxième variable de type Joueur va être crée.

    Après lors de l'initialisation d'une partie j'ai une methode "initPartie" qui va faire apparaitre le joueur qui va chercher le mot, puis dans le cas où la partie est multi-joueur le joueur qui va entrer le mot a chercher, dans le cas d'une partie "Solo", le deuxieme parametre sera égal à null.

    Cependant, lors du debug, j'ai une erreur qui est la suivante :
    Le nom 'joueur_2' n'existe pas dans le contexte actuel
    Alors que pourtant je l'instancie à ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(type_partie == Convert.ToChar("M"))
    {
        Joueur joueur_2 = new Joueur();
        joueur_2.initJoueur(2);
    }
    Quelqu'un pourrait t'il m'éclairer sur ce petit probleme ?
    Merci d'avance

    Bonne soirée

  2. #2
    Expert éminent
    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 : 46
    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
    Points : 7 660
    Points
    7 660
    Par défaut
    Tu es certain que l'erreur de compilation concerne la ligne du bout de code posé ? J'aurai tendance à dire que tu utilises également la variable joueur_2 en dehors du bloc if. Et comme tu as déclaré cette variable dans le bloc if, elle n'est pas visible à l'extérieur du bloc. D'où l'erreur de compilation.
    Pas de questions techniques par MP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    J'utilise ma variable "joueur_2" dans le code ci-dessus ainsi que dans celui là en fonction du type de partie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Initialisation de la partie
        if (rep_joueur == Convert.ToChar("1"))
        {
            part.initPartie(joueur_2, joueur_1);
        }
        else
        {
            part.initPartie(joueur_1, joueur_2);
        }

  4. #4
    Expert éminent
    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 : 46
    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
    Points : 7 660
    Points
    7 660
    Par défaut
    C'est bien ce que j'ai dis donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(type_partie == Convert.ToChar("M"))
    {
        // On déclare et on initialise la variable joueur_2 de type Joueur
        // La portée de la variable est celle du bloc où elle est définie
        Joueur joueur_2 = new Joueur();
        joueur_2.initJoueur(2);
    }
    ...
    // A ce stade, la variable joueur_2 n'est plus accessible
    Il faut que tu revois la notion de portée des variables
    Pas de questions techniques par MP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    Il faut donc que je crée la variable (globale) en dehors du bloc, cependant je ne trouve pas ça utile de la créer si je ne m'en sers pas ?

    Etant donné que la création va dépendre d'une action present dans le bloc comment puis je faire pour la créer uniquement si nous sommes en mode multijoueur ?

  6. #6
    Expert éminent
    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 : 46
    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
    Points : 7 660
    Points
    7 660
    Par défaut
    Ce qu'il faut c'est que ta variable soit déclarée au bon endroit afin que tu puisses l'utiliser là où tu en as besoin. Après pour l'initialisation, tu fais ça où c'est le plus adapté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Déclaration
    Joueur joueur_2;
    ...
    // Initialisation
    joueur_2 = new Joueur();
    ...
    Déclaration et initialisation sont 2 actions indépendantes, même si on peut faire les 2 à la fois.
    Pas de questions techniques par MP

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    D'accord
    Je trouvais ça inutile de déclarer la variable dans les deux modes, je voulais pouvoir la déclarer et l'initialiser uniquement dans le mode multi

    Enfin bon, merci beaucoup en tout cas

  8. #8
    Expert éminent
    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 : 46
    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
    Points : 7 660
    Points
    7 660
    Par défaut
    Ca peut être lié à un problème de conception après, mais là c'est une autre histoire
    Pas de questions techniques par MP

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

Discussions similaires

  1. Problème bizarre avec une variable de type string
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/06/2009, 11h34
  2. problème avec une variable de type string
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/06/2007, 14h53
  3. Réponses: 15
    Dernier message: 10/05/2007, 13h36
  4. [PHP-JS] problème avec une variable
    Par schats dans le forum Langage
    Réponses: 14
    Dernier message: 15/04/2007, 13h54
  5. [Javascript] problème avec une variable
    Par creatik dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/09/2006, 18h38

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