Concernant les variables globales, cela dépend de ton besoin:
- S'il s'agit de variable d'application, alors tu peux travailler avec le fichier de configuration de ton application. Ainsi, tu pourras accéder facilement à tes variables que ne seront disponibles qu'en lecture (pour les modifier, il te faudra le faire à la mano). Ceci répond bien à un besoin de variables qui ne changent pas lors de l'exécution de ton appli.
Url: http://nico-pyright.developpez.com/tutoriel/vc2005/configurationsectioncsharp/
private void Initialize()
{
//Tu initialise tes variables ici (par rapport à une base de données ou peu importe...)
this.Text = "Text";
this.Number = 1;
}
public static MySingleton Instance { get { return instance; } }
}
Tu y auras accès facilement avec le code:
string text = MySingleton.Instance.Text;
- Sinon, si ton besoin est assez simple, il te suffit de faire (comme Lutinore l'a dit) uniquement une variable static dans une classe.
public class Class1
{
public static string Text = "Text";
}
string text = Class1.Text;
Voila tout,
Bonne journée,
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
"Ma deuxième question, est comment faire un interval pour retarder certaine fonction ? J'ai chercher mais je ne trouve toujours pas ..."
Comme dit Lutinore, Thread.Sleep(int millisec); - namespace System.Threading - bloque le thread courant. Attention donc que le thread ne répond pas. Si c'est le thread principal, ton programme aura l'air d'avoir planté (pas de réactualisation de l'image, etc. Cependant, c'est vrai qu'il s'agit d'une méthode très simple.
Si cependant elle ne te convient pas, si tu utilises Windows Forms, tu peux te renseigner sur le composant Timer - namespace System.Windows.Forms -. Si tu n'utilises pas Windows Forms, tu peux te renseigner sur la classe Timer - namespace System.Timers -.
Ces 2 classes fonctionnent à peu près de la même façon : Tu crées un objet, tu définis un intervalle, tu attaches une méthode à un événement de cet objet, puis tu fais Start() sur ton objet.
Krimog : while (!(succeed = try())) ; - NON, "LE BAR" n'est PAS un langage de programmation ! -
Salut, C# est totalement orienté objet et la notion de portée globale n'existe pas pour les variables.. Pour partager des variables entre plusieurs classes, elle peuvent être déclarées statiques ( mot clé : static ) dans la classe principale ou dans un classe dédiée qui elle même peut être statique.
J'ai oublié l'essentiel:
- s'il s'agit de variables relatives à ton interface: Label, Image, etc..., il te faut utiliser les fichiers "Resources" qui te permettront de facilement implémenter ces derniers pour d'autres langues: http://sharpertutorials.com/resource-files/
Voila, je crois qu'on a fait le tour.
Bonne journée,
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Un Thread.Sleep(..) ne requiert pas d'action de "stop" particulière. Cette action permet uniquement de faire attendre le process un temps donnée.
Au contraire, la mise en place d'un Timer (System.Timers.Timer) devra être stopper (méthode Stop()) si la propriété AutoReset est à true.
Bonne journée,
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
En ce qui concerne les contrôles System.Windows.Forms.Timer, ils n'ont pas de propriété AutoReset je crois, mais cependant ils continuent à appeler la méthode déléguée indéfiniment. Si tu utilises ce contrôle, tu devras donc faire un Stop() dans la méthode attachée à l'événement (contrairement à un System.Timers.Timer où tu as juste à mettre AutoReset à false).
Krimog : while (!(succeed = try())) ; - NON, "LE BAR" n'est PAS un langage de programmation ! -