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 :

Mise à jour des variables d'une méthode [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Par défaut Mise à jour des variables d'une méthode
    Bonjour à tous,

    J'ai un petit problème actuellement avec l'utilisation de variables dans deux méthodes différentes.

    Explications:

    Voici le code "réduit" de mon application :



    Mon problème :

    J'utilise le bouton 1 pour ouvrir un fichier XML, une fois le fichier chargé je récupère des informations, crée des variables et les stock dans des tableaux (tout se passe dans la méthode "button1_Click")

    Pour le bouton 2 j'aimerai effectuer d'autres calculs mais en utilisant les variables/tableaux créés dans la méthode du bouton 1 (pour en faire une sorte de mise à jour) or j'ai toujours un message d'erreur "le nom 'machin' n'existe pas dans le contexte actuel"

    Comment faire pour importer les variables de bouton 1 dans bouton 2 ? (Ou utiliser les variables de Bouton 1 dans la methode Bouton 2 )

    NB: J'utilise Visual C# 2010 Express

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Par défaut
    Il faut que tu déclares les variables de la même manière que tu as déclaré tes boutons, ainsi elles seront connues de toutes ta classe et donc de toutes les méthodes.

    private string sLZEFEZF; etc...

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Par défaut
    Je ne peux pas déclarer certaines variables en dehors de la méthode "bouton 1" car j'utilise le nom du fichier ouvert préalablement pour créer un DataSet et effectuer mes opérations (remplir mes tableaux).

    Par exemple, dans ma méthode Bouton 1 j'ai:

    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
                                     // CREATION DES MATRICES "E", "S" et "MA"
                                    int[][] E = new int[nbrtransition][];
     
                                    int[][] S = new int[nbrtransition][];
                                    int[][] MA = new int[nbractionblock][];
     
                                    // REMPLISSAGE DES MATRICES
     
                                    //Pour la matrice MA des 
                                    for (i = 0; i < nbractionblock; i++)
                                    {
                                        MA[i] = new int[nbrstep];
                                        for (int j = 0; j < nbrstep; j++)
                                        {
                                            if (actionblockrefLocalId[i] == steplocalId[j])
                                            {
                                                MA[i][j] = 1;
                                            }
                                            else
                                            {
                                                MA[i][j] = 0;
                                            }
     
                                        }
                                    }
     
                                    //Pour la matrice E des étapes d'entrées des transitions
                                    for (i = 0; i < nbrtransition; i++)
                                    {
                                        E[i] = new int[nbrstep];
     
                                        for (int j = 0; j < nbrstep; j++)
                                        {
                                            if (steplocalId[j] == transitionrefLocalId[i])
                                            {
                                                E[i][j] = 1;
                                            }
                                            else
                                            {
                                                E[i][j] = 0;
                                            }
                                        }
                                    }
     
                                    //Pour la matrice S des étapes de sortie des transitions
                                    for (i = 0; i < nbrtransition; i++)
                                    {
                                        S[i] = new int[nbrstep];
                                        for (int j = 0; j < nbrstep; j++)
                                        {
                                            if (transitionlocalId[i] == steprefLocalId[j])
                                            {
                                                S[i][j] = 1;
                                            }
                                            else
                                            {
                                                S[i][j] = 0;
                                            }
                                        }
                                    }
    Question : Comment réutiliser E, S et MA dans bouton 2 ?

    NB: Les tableaux unidimensionnels (i.e steplocalId[j]) sont préalablements rempli à l'aide du DataSet, de même que pour les variables (i.e nbrtransition/nbrstep) qui sont calculer en récupérant le nombre total de noeud de chaque élément contenu dans un fichier XML.
    Je ne peux donc pas les déclarer en dehors de cette méthode

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Si si tu peux les déclarer en tant que membres, comme ceci :
    Code C# : 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
    namespace SimpleXMLParser
    {
        public class Form1 : System.Windows.Forms.Form
        {
            private System.Windows.Forms.Button button1;
            //... Tes autres membres
     
            private int[][] E;
            private int[][] S;
            private int[][] MA;
     
            private void button1_Click(object sender, System.EventArgs e)
            {
                this.E = new int[nbrtransition][];
                this.S = new int[nbrtransition][];
                this.MA = new int[nbractionblock][];
     
                // REMPLISSAGE DES MATRICES
     
                //Pour la matrice MA des 
                for (i = 0; i < nbractionblock; i++)
                {
                    this.MA[i] = new int[nbrstep];
                    for (int j = 0; j < nbrstep; j++)
                    {
                        if (actionblockrefLocalId[i] == steplocalId[j])
                        {
                            this.MA[i][j] = 1;
                        }
                        else
                        {
                            this.MA[i][j] = 0;
                        }
     
                    }
                }
     
                //Pour la matrice E des étapes d'entrées des transitions
                for (i = 0; i < nbrtransition; i++)
                {
                    this.E[i] = new int[nbrstep];
     
                    for (int j = 0; j < nbrstep; j++)
                    {
                        if (steplocalId[j] == transitionrefLocalId[i])
                        {
                            this.E[i][j] = 1;
                        }
                        else
                        {
                            this.E[i][j] = 0;
                        }
                    }
                }
     
                //Pour la matrice S des étapes de sortie des transitions
                for (i = 0; i < nbrtransition; i++)
                {
                    this.S[i] = new int[nbrstep];
                    for (int j = 0; j < nbrstep; j++)
                    {
                        if (transitionlocalId[i] == steprefLocalId[j])
                        {
                            this.S[i][j] = 1;
                        }
                        else
                        {
                            this.S[i][j] = 0;
                        }
                    }
                }
            }
     
            private void button2_Click(object sender, System.EventArgs e)
            {
                // Ici tu peux ensuite manipuler tes membres E S et MA...
                var memberE = this.E;
                var memberS = this.S;
                var memberMA = this.MA;
            }        
        }
    }
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Par défaut
    Merci pour ta réponse DotNetMatt, je vais appliquer ta solution à mon programme et jreviendrai si il y a un encore problème ou pour classer cette conversation.

  6. #6
    Nouveau candidat au Club
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Par défaut

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

Discussions similaires

  1. Mise à jour des champs d'une table
    Par soso78 dans le forum Access
    Réponses: 2
    Dernier message: 14/12/2006, 15h57
  2. Réponses: 2
    Dernier message: 07/06/2006, 14h13
  3. Module de mise à jour des champs d'une table
    Par kikaillo dans le forum Access
    Réponses: 14
    Dernier message: 18/04/2006, 09h42
  4. Réponses: 6
    Dernier message: 07/02/2006, 14h44
  5. Réponses: 3
    Dernier message: 15/11/2005, 18h50

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