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 :

Question de débutant sur les classes


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Question de débutant sur les classes
    Bonjour,


    Alors voici mon projet : j'ai une classe principale, qui doit gérer un tableau.

    Pour cela, j'ai fais une classe "Manipulation", qui contient les méthodes "lecture" et "ecriture".

    La fonction lecture renvoit la valeur du tableau que je souhaite obtenir, et la fonction ecriture écrit dans le tableau.

    Le problème c'est que si j'initialise mon tableau dans ma classe principale, le tableau est innaccessible depuis ma classe "Manipulation".

    Si je crée mon tableau dans la classe Manipulation, de cette facon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            public static void creation()
            {
     
                // On déclare le nouveau tableau
                int[,] Tabrel = new int[100, 100];
    }
    Et qu'ensuite j'essaye d'y accéder de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     public static int lecture(String MatName, int abs, int ord)
            {
     
                if (MatName == "Tabrel")
                { //MessageBox.Show("on lit dans tabrel");
     
                    return (Tabrel[0, 3]);
     
     
                }
                 return 0;
    }
    J'ai le message d'erreur :
    Tabrel n'existe pas dans le contexte actuel.


    Auriez vous une idée pour créer mon tableau Tabrel dans la classe Manipulation, de façon à ce qu'il soit accessible depuis n'importe quel méthode de cette même classe ?

    Merci

  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
    Avant de se lancer dans du développement, il serait bon de lire un cours. Car ton problème est simplement une méconnaissance des bases de la programmation orientée objet (portée des variables dans ce cas de figure).

    Bref : http://tahe.developpez.com/dotnet/csharp/


  3. #3
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Je t'invite fortement en effet à lire des cours, comme te l'a conseillé StormimOn, sans quoi tu vas très vite te heurter à des difficultés.

    Concernant ton problème en question, ce qu'il faudrait que tu fasses, c'est que tu définisses ton tableau comme étant une propriété de ta classe, avec un accesseur dessus pour bien faire. Ainsi tu pourras, via une référence sur cette classe, le manipuler depuis d'autres classes/projets.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par StormimOn Voir le message
    ton problème est simplement une méconnaissance des bases de la programmation orientée objet (portée des variables dans ce cas de figure).
    Une précision toutefois : le concept de scope des variables n'est pas spécifique à la POO; c'est un concept de base qu'on trouve aussi dans tous les langages proceduraux utilisant des "blocs" de code : C, Pascal, et un grand etc ....

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par Er3van Voir le message
    Concernant ton problème en question, ce qu'il faudrait que tu fasses, c'est que tu définisses ton tableau comme étant une propriété de ta classe, avec un accesseur dessus pour bien faire. Ainsi tu pourras, via une référence sur cette classe, le manipuler depuis d'autres classes/projets.
    Et j'ajouterais qu'il n'est pas forcément indispensable d'abuser des "static" surtout si c'est pour apprendre la POO .....

  6. #6
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Bonjour. La compréhension des scopes (portées de variables) te permettra en effet de saisir pourquoi ça ne marche pas.

    Mais pour corriger le problème, il faut questionner et évaluer le design choisi et ce n'est pas facile avec une simple lecture de cours. Alors voici pour commencer deux questions que tu devrais te poser : pourquoi ne pas ajouter directement tes méthodes "lecture" et "écriture" dans la classe qui enveloppe ton tableau ? Pourquoi avoir introduit cette classe manipulation ?

Discussions similaires

  1. Question débutant sur les classes
    Par oranoutan dans le forum Windows Forms
    Réponses: 5
    Dernier message: 29/05/2007, 12h25
  2. Réponses: 15
    Dernier message: 15/10/2006, 17h52
  3. question de débutant sur les jointures
    Par dreamcocktail dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/03/2006, 16h24
  4. Question de base sur les classes
    Par deaven dans le forum C++
    Réponses: 3
    Dernier message: 27/11/2005, 17h20
  5. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 11h51

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