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 :

[Débutant][VS.NET]architecture pgm \ visibilité des variables


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut [Débutant][VS.NET]architecture pgm \ visibilité des variables
    Bonjour,
    Je débute en C# et je crois qu'il me manque quelques notions...
    Mon programme a l'architecture suivante:

    namespace XXX
    {
    public class YYY
    {
    private VARIABLE var;
    ...


    static void Main()
    {
    // utilisation des variables : instantiations, manipulations
    var = new VARIABLE();
    ...
    }
    }
    }

    Voila la question: lorsque je lance mon programme, il me fait une erreur du type champ ou classe inattendue, pourquoi? Les variables créées ne sont pas visibles sur tout le programme?
    Bon j'espère que ma question est pas trop débile
    Merci d'avance

  2. #2
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    Il faut que ta class yyy s'appelle "Program".
    ****************************************

    - I don’t write plumbing code anymore
    - I use PostSharp
    - And you?


    ****************************************

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    en fait YYY est

    Fenetre1 : System.Windows.Forms.Form

    Ce que je voudrais c'est les attributs soient visibles par toutes les classes...

  4. #4
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    Qu'est ce que tu appelles attribut ? var ?
    Si tu veux que ce champ soit visible par les autres classe, il faut le déclarer public, ou mieux l'encapsuler dans une propriété disponible en lecture et/ou en écriture.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private string _Var;
     
    public string Var
    {
         get{return _Var;}
         set{_Var = value;}
    }
    Maintenant je ne suis pas sûr d'avoir compris ta question... Dis-moi si ça y répond.
    ****************************************

    - I don’t write plumbing code anymore
    - I use PostSharp
    - And you?


    ****************************************

  5. #5
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Pour utiliser une variable dans une méthode static, il faut que ta variable soit aussi déclaré en static.

    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
     
    namespace XXX
    {
      public class YYY
      {
        private static VARIABLE var;
        ...
     
     
        static void Main()
        {
          // utilisation des variables : instantiations, manipulations
          var = new VARIABLE();
          ...
        }
      }
    }

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Les deux méthodes marchent très bien mais celle avec les accesseurs rend le code un peu plus lourd!

    En tout cas Maa, Kelpan merci bcp

  7. #7
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    Moi j'utilise toujours des accesseurs, même quand je définie ma propriété en lecture et en écriture et que je renvoi simplement la valeur du champs private. Pour ce qui est de la lourdeur, ça fait un peu plus de ligne de code, mais on y gagne en lisibilité je trouve. Et puis avec le refactoring, ça ne prends pas beaucoup de temps à écrire.
    ****************************************

    - I don’t write plumbing code anymore
    - I use PostSharp
    - And you?


    ****************************************

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

Discussions similaires

  1. Visibilité des variables
    Par Akhan dans le forum MATLAB
    Réponses: 1
    Dernier message: 22/01/2007, 23h22
  2. [VB.NET][1.1] Portée des variables en Aspx
    Par predalpha dans le forum ASP.NET
    Réponses: 1
    Dernier message: 22/11/2006, 14h30
  3. [VB.NET] Vider le contenu des Variables
    Par linutx dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/07/2006, 21h31
  4. problème de visibilité des variables dans un include
    Par d1g-2-d1g dans le forum Langage
    Réponses: 6
    Dernier message: 28/11/2005, 09h35
  5. [EasyPHP] problème de visibilité des variable dans les includes
    Par d1g-2-d1g dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 23/10/2005, 01h55

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