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 :

constantes et variables de classe


Sujet :

C#

  1. #1
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut constantes et variables de classe
    Bonjour,

    Une question que j'ai un peu honte de poser,
    j'ai créé une classe, j'ai declaré des constanteset des variables comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    namespace Machine
    {
        class Machin
        {
            WavePOints = 1000;
            double[,] PulseArray = new double[1000, 2];
            double[,] StoreArray10000 = new double[1000, 2];
            double[] WaveFormArray = new double[1000];
         }
    }
    je voudrais pouvoir faire la chose suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    namespace Machine
    {
        class Machin
        {
            WavePOints = 1000;
            double[,] PulseArray = new double[WavePOints , 2];
            double[,] StoreArray10000 = new double[WavePOints , 2];
            double[] WaveFormArray = new double[WavePOints ];
         }
    }
    mais biensur j'ai l'erreur,
    A field initializer cannot reference the non static field....
    ca m'embete parceque c'est juste une portion de code et j'ai un tas de variables.

    une suggestion?

    Merci.

  2. #2
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut
    Bon j'ai trouvé la solution,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    namespace Machine
    {
        class Machin
        {
            public static int WavePoints = 1000;
            double[,] PulseArray = new double[WavePoints , 2];
            double[,] StoreArray10000 = new double[WavePoints , 2];
            double[] WaveFormArray = new double[WavePoints ];
         }
    }
    merci public static !

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 97
    Par défaut
    Utilise un constructeur :

    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
    namespace Tektronix
    {
        class Oscilloscope
        {
             private const int WavePOints = 1000;
     
            private  double[,] PulseArray;
            private double[,] StoreArray10000;
            private double[] WaveFormArray;
     
            public Oscilloscope()
            {
              PulseArray = new double[WavePOints , 2];
              StoreArray10000 = new double[WavePOints , 2];
              WaveFormArray = new double[WavePOints ];
     
             }
         }
    }

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par KooKiz Voir le message
    Utilise un constructeur
    +1, c'est nettement plus propre

  5. #5
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut
    J'avoue
    merci bcp

  6. #6
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut
    J'ai une question encore si ca ne derange personne.

    admettons que WavePoints soit une variable qui est mise a jour par une classe ( wavepoints va etre une instance de cette classe)

    les variables PulseArray et autres, ne sont pas mise a jour avec la valeur de WavePoints qui aura eté calculée dans cette classe.

    comment faire alors ?
    merci

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Par défaut
    Est ce que tout le contenu de PulseArray change lorsque WavePoints est mis à jour ou est ce que tu ajoutes juste des données ?

    Si tu est dans le second cas de figure, peut être pourrait tu jeter un oeil du côté des listes ou des dictionnaires qui ont le mérite de pouvoir ajouter des éléments sans connaitre la taille définitive de l'objet.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par lasrevinu Voir le message
    admettons que WavePoints soit une variable qui est mise a jour par une classe ( wavepoints va etre une instance de cette classe)

    les variables PulseArray et autres, ne sont pas mise a jour avec la valeur de WavePoints qui aura eté calculée dans cette classe.

    comment faire alors ?
    Perso j'ai rien compris... tu peux reformuler ?

  9. #9
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut
    Merci pour votre ecoute,
    J'ai posté le topic ici:

    http://www.developpez.net/forums/d90...leurs-listbox/

    merci encore

  10. #10
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut
    Merci pour vos reponse
    J'ai crée un projet pour l'exemple, j'ai le meme soucis:
    le voici:
    sur ma form principal il y a une listBox et un bouton

    le bouton dois afficher la valeur de la list box en passant par la classe, (en fait cette valeur est traité par cette classe, mais je ne montre pas cette etape pour simplifier)

    Le formulaire principale contient le code suivant:

    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
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Test
    {
        public partial class Form1 : Form
        {
            CLass Class1;
     
            static string ListBoxValue;
     
            public Form1()
            {
                Class1 = new CLass();
                InitializeComponent();
                SpeedListBox.SelectedIndex = 3;
            }
            //-------------------------------------------------------------------------------------------
     
            private void Form1_Load(object sender, EventArgs e)
            {
            }
            //-------------------------------------------------------------------------------------------
            public string GetListBoxValue
            {
                get { return ListBoxValue; }
            }
            //-------------------------------------------------------------------------------------------
     
            private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                ListBoxValue = SpeedListBox.Text;
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                Class1.affiche();
            }
        }
    }
    la classe contien le code suivant:



    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO.Ports;
    using System.Windows.Forms;
    using System.ComponentModel;
    using System.Threading;
     
     
    namespace Test
    {
        class CLass
        {
     
            static Form1 LeTest = new Form1();
            static string WavePointString = LeTest.GetListBoxValue;
     
            public void affiche()
            {
                MessageBox.Show(WavePointString);
            }
     
        }
    }
    j'ai toujours la valeurs 40 qui s'affiche parceque c'est elle qui est specifié par selectedIndex=3

    voila
    merci encore !

Discussions similaires

  1. Fonctions constantes et variables constantes
    Par TabrisLeFol dans le forum Langages de programmation
    Réponses: 11
    Dernier message: 13/03/2006, 07h37
  2. variable de classe en Python
    Par Thierry Chappuis dans le forum Général Python
    Réponses: 5
    Dernier message: 09/02/2006, 22h06
  3. Variable de classe JPanel
    Par Janitrix dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 11/12/2005, 17h50
  4. débutant:utilisation de variable entre classe
    Par troojan dans le forum MFC
    Réponses: 1
    Dernier message: 07/12/2005, 23h31
  5. Réponses: 6
    Dernier message: 23/09/2005, 12h54

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