1. #1
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    juin 2012
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : juin 2012
    Messages : 130
    Points : 72
    Points
    72

    Par défaut Les tableaux que je déclare ne sont pas accessible dans mes méthodes

    Bonjour,

    Je débute en C# je me fais une application console. Je déclare un tableau tableauConservateur et j'aimerais qu'il soit accessible dans mes deux méthodes que je déclare plus bas. Elles vont servir à enregistrer mes données dans le tableau et à les afficher.
    Mais cela ne fonctionne pas. Il n'est pas accessible et je ne comprends pas pourquoi.

    Pour l'instant j'ai un message d'erreur les méthodes n'ont pas accès au tableau (Je sais que j'ai plus de code)

    Voici mon code
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    using System;
     
    namespace ConsoleApp1
    {
        class Program
        {
     
     
            static void Main(string[] args)
            {
     
     
                string[,] tableauConservateur = new string[40, 3];
                string[,] tableauArtiste = new string[40, 3];
                string[,] tableauOeuvre = new string[40, 7];
     
                menu();
     
                string choix = Console.ReadLine();
                int xChoix = Int32.Parse(choix);
     
                switch(xChoix)
                {
                    case 1:
                        AjoutConservateur();
                        break;
     
                    case 2:
                        AfficheConservateur();
                        break;
     
                    /*case 3:
                        AjoutOeuvre();
                        break;
     
                    case 4:
                        AffciheConservateur();
                        break;*/
     
                }
            }
            private static void menu()
            {
                Console.WriteLine("================================================================");
                Console.WriteLine("=======================Menu Principal===========================");
                Console.WriteLine("================================================================");
                Console.WriteLine("1. Ajout d'un conservateur");
                Console.WriteLine("2. Ajout d'un artiste");
                Console.WriteLine("3. Ajout d'un oeuvre");
                Console.WriteLine("4. Afficher les conservateurs");
                Console.WriteLine("5. Afficher les artistes");
                Console.WriteLine("6. Afficher les oeuvres");
                Console.WriteLine("7. Quitter");
                Console.WriteLine("================================================================");
                Console.WriteLine("Quel est votre choix ?  ");
                //Console.ReadLine();
            }
     
            public static void AjoutConservateur()
            {
     
     
                Console.Write("Code du conservateur: ");
                string codeConservateur = Console.ReadLine();
                if (codeConservateur.Length != 5)
                {
                    Console.WriteLine("Le code doit avoir 5 caractères");
                    //doit ajouter retour au menu principal
                }
                int cnt = 0;
                do
                {
                    if (tableauConservateur[cnt, 0] == null)
                    {
                        break;
                    }
                    if (tableauConservateur[cnt, 0] == codeConservateur)
                    {
                        Console.WriteLine("Le code existe déjà");
                        //retour au module principale
                    }
                    cnt += cnt;
                } while (cnt < 40);
     
                tableauConservateur[cnt, 0] = codeConservateur;
                Console.Write("Nom du conservateur: ");
                string nomConservateur = Console.ReadLine();
                if (nomConservateur.Length > 30)
                {
                    Console.WriteLine("Le nom doit contenir moins de 30 caractères");
                    //retour au module appelant
                }
                tableauConservateur[cnt, 1] = nomConservateur;
     
                tableauConservateur[cnt, 2] = "0";
     
     
            }
     
            public static void AfficheConservateur()
            {
                for (int cnt = 0; cnt < 41; cnt++)
                {
                    //affiche tous les conservateurs du tableau
                    Console.WriteLine("Code   Nom du conservateur");
                    Console.WriteLine(tableauConservateur[cnt, 0] + tableauConservateur[cnt, 1]);
                }
     
     
            }
        }
    }
    Merci

  2. #2
    Membre averti Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    mai 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : mai 2002
    Messages : 160
    Points : 309
    Points
    309

    Par défaut

    Tes tableaux sont déclares dans la méthode Main. Ils n'existent donc que dans cette methode, et pas ailleurs.
    Mets leur déclaration en dehors:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        class Program
        {
            static string[,] tableauConservateur = new string[40, 3];
            static string[,] tableauArtiste = new string[40, 3];
            static string[,] tableauOeuvre = new string[40, 7];
     
            static void Main(string[] args)
            {
     
                menu();
                etc...
    Et si je peux me permettre, regarde des cours sur la portée des variables (par exemple ici), et supprime ton autre message (pas besoin de double post )
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : juin 2007
    Messages : 424
    Points : 667
    Points
    667

    Par défaut

    C'est ce qu'on appelle la portée des variables. Tu crées tes tableaux dans une méthode, du coup ils n'existe que pour le code de la méthode. Il te faut les déclarer au niveau de la classe pour qu'ils soient visibles de toutes les méthodes de la classe, ou les passer en paramètre à tes autres méthodes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    using System;
     
    namespace ConsoleApp1
    {
        class Program
        {
            private static string[,] tableauConservateur = new string[40, 3];
            private static string[,] tableauArtiste = new string[40, 3];
            private static string[,] tableauOeuvre = new string[40, 7];
     
            static void Main(string[] args)
            { 
                menu();

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/06/2014, 09h11
  2. Réponses: 6
    Dernier message: 12/11/2010, 00h58
  3. Réponses: 26
    Dernier message: 05/02/2007, 17h57
  4. Réponses: 4
    Dernier message: 11/07/2006, 22h43
  5. Réponses: 10
    Dernier message: 23/03/2006, 21h57

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