Variables statiques dans une form application?

phyyl Messages postés 15 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 17 juin 2013 - 19 mars 2012 à 04:30
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 19 mars 2012 à 10:22
Bonjour, j'ai un petit soucis... Je crée des applications diverses en C# mais depuis le tout début, je n'utilise que des fichiers pour enregistrer mes infos et données puisse que c'est le but principal de mes programmes. Par contre, depuis une semaine je suis confronté au problème suivant : Supposons que je veut que je demande à l'utilisateur d'entrer 50 variables et que je veux que ces variables soit accessible (dans le code) depuis d'autre fonctions. J'ai essayer avant et après le "Application.Run(new Form1())" , dans le constructeur de la classe "Form1" ... bref je suis perdu ! où puis-je faire une boucle qui roule derrière ma fenêtre ?

Merci à tous,

Phil

2 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
19 mars 2012 à 09:51
Salut,

je suis pas bien sûr de comprendre ta demande. Le titre et le début du message laissent supposer que tu te poses des questions sur la portée des variables en C# (vaste sujet). La fin du message parle quant à lui de thread asynchrone ...

De plus, si on reprend ton exemple (user, 50 vars, ...) tu as déjà accès à ses valeurs dans toute ton instance de Form1, via monForm1.maTextBox.Text (où autre contrôle de saisi).
Si tes "fonctions" sont en-dehors de ta classe principale cela va dépendre de ce que tu veux faire. Si cette "classe métier" est destinée à être externalisé alors il faut que tout soit passé en paramètre. Si ton archi est "en dur", que rien ne bougera jamais plus, tu peux alors tout mettre dans les variables statiques à l'objet Form1.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
19 mars 2012 à 10:22
Bonjour,

ce que je traduis de ta question:

Tu demandes la saisie de 50 variables que tu stockes dans un fichier.
Puis plus loin tu voudrais accéder à ces données.

La variable statique, ca n''est pas trop dans la philisophie du C#.
Ce que je ferais moi, c'est utiliser une list<T>, quand l'utilisateur saisie les données tu les ajoutes à cette liste.

Esnuite tu passes cette liste en paramètre des tes différents formulaires, par exemple si tu en as besoin dans Form2:
//tu modifies le contructeur de form2
Public Form2(List<string> maListe)
{...
}

//dans form1 tu appelles form2 ainsi
Form2 maForm2 = new Form2(maListe);

c'est du passage par "référence" donc toute modif faite dans un formulaire est valable partout. Il ne te reste qu'à gérer les enregistrements.

L'utilisation d'une variable globale reste possible, tu écris une classe statique et publique, dans laquelle tu déclares une variable statique et publique.

Whismeril
0
Rejoignez-nous