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 :

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


Sujet :

C#

  1. #1
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    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 : 136
    Points : 75
    Points
    75
    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 confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    Points : 627
    Points
    627
    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 chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 898
    Points : 1 915
    Points
    1 915
    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. Vérification que les champs user et mdp ne sont pas vides avant submit
    Par LilliBrei dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/06/2014, 08h11
  2. Réponses: 6
    Dernier message: 11/11/2010, 23h58
  3. Réponses: 26
    Dernier message: 05/02/2007, 16h57
  4. Réponses: 4
    Dernier message: 11/07/2006, 21h43
  5. Réponses: 10
    Dernier message: 23/03/2006, 20h57

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