cs_mathmax
Messages postés403Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention31 août 2008
-
13 déc. 2005 à 01:03
cs_mathmax
Messages postés403Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention31 août 2008
-
26 déc. 2005 à 00:11
Bonjour,
J'aimerais faire la chose suivante. Défénir que par défaut une variable à la valeur false, que si on clique sur le bouton 1 elle prend la valeur true et que le bouton 2 teste si cette variables à la valeur true ou false. J'écris donc un truc du style :
Le truc c'est que je ne sais pas comment déclarer des variables pourqu'elles soient valables dans tous le programme. Ca va vous paraître bète mais ça fais un moment que je cherche et j'ai toujours des erreurs comme "The name 'variable' does not exist in the current context".
Un coup de pouce s'il vous plait ?
Mathmax
A voir également:
Déclarer des variables pourqu'elles soient valables dans tous le programme
cs_badrbadr
Messages postés475Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 novembre 20081 13 déc. 2005 à 05:05
tu peux mettre ta variable en static
ainsi, elle sera independante des objets crées.
un autre tuc est de passé une référence de ta classe aux autres classes de ton programme. ces dernieres pouront alors acceder à variable grace à la référence.
Alors, pour résumer, soit que tu mets ta variable en mode static
public static bool variable = false;
ou encore que tu passes aux autres classes de ton programme une référence.
La première option est plus facile mais je ne suis pas sur qu'elle va te convenir
finalement, en C++ (en C# aussi je pense), je me rappèle qu'il y avait le mot-clé extern pour rendre ta variable globale...mais, j'ai oublié les détails de son fonctionnement cependant (je dis donc ca juste pour te mettre sur une piste potentiel)
bon, j espere que c etait clair, sinon n hesite pas a demander de plus amples renseignements
ceci dit, salut
LUDINSKI
Messages postés441Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention22 mai 20128 13 déc. 2005 à 06:24
Salut,
Pour ma part, je créerai un projet nommé Globale de type Class Library,
contenant une classe Datas contenant la variable static,
et j'ajouterai la référence de cette classe à tous les projets de l'application...
cs_mathmax
Messages postés403Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention31 août 2008 13 déc. 2005 à 17:40
Merci pour vos réponse. J'ai un peu tout essayé mais chaque méthode me pose problème :
J'ai d'abord essayé de mettre ma variable en static. Mais je ne sais pas où la placer et j'obtient à chaque fois le message suivant : "The modifier 'static' is not valid for this item".
J'avoue ne pas avoir trop compris le truc d'acceder à la variable grace à une référence.
Ensuite j'ai essayé le truc de LUDINSKI. J'ai donc crée une classe variable dans laquelle j'ai mis ma variable
class Datas
{
public bool variable
{
get
{
return variable;
}
set
{
variable= value;
}
}
}
Mais je ne sais pas exactement si c'est comme ça qu'il faut faire. Je ne vois par ailleurs pas comment faire pour qu'au lancement du programme, la variable prends la valeur false par exemple.
Enfin, je me suis renseigné sur ce qu'est le singleton. Il semble que ce soit plus pour créer une unique instance d'un objet et pour qu'elle est une porté générale pour toutes les classes du programme. Mais ma variable peut elle être considérée comme une instance d'objet ? Si oui comment lui appliquer le songleton. Pourrais tu me le montrer dans mon exemple stp ?
J'ai appris en faisont ces recherches que les variables globales n'étaient pas pris en charge par C# comme dans les anciennes versions de visual basic par exemple...
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 13 déc. 2005 à 17:52
les variables globales ne sont pas correctes dans le modèle objet...
Un singleton est une classe dont l'instance est statique... ca permet d'être sur que quelque soit l'endroit d'où tu l'appeleras "l'objet" sera la même...
l'une des utilisations les plus est le regroupement des variables qui permettent de gérer ton programme... (connectionstring, ...)
Sébastien FERRAND [MVP C#]
cs_badrbadr
Messages postés475Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 novembre 20081 15 déc. 2005 à 03:25
un singleton n'est pas une variable, il s'agit d'une classe spéciale
de wikipidia:
On implante le modèle singleton en écrivant une classe contenant une méthode qui crée une instance uniquement s'il n'en existe pas encore. Sinon elle renvoie une référence vers l'objet qui existe déjà. Dans beaucoup de langages à objets, il faudra veiller à ce que le constructeur de la classe soit privé ou bien protégé, afin de s'assurer que la classe ne peut être instanciée autrement que par la méthode de création contrôlée.
LUDINSKI
Messages postés441Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention22 mai 20128 15 déc. 2005 à 04:14
Voici l'exemple que je t'ai proposé, mais sous forme de singleton :
public
class
Datas
{
// Instance unique de la classe
private static
Datas _instance;
private bool _variable;
// Le constructeur est privé pour éviter d'avoir plusieurs instances différentes
private
Datas()
{
_variable = false;
}
// Cette méthode retourne l'instance unique de la classe
public static
Datas GetInstance()
{
// La classe n'a encore jamais été instanciée
if( _instance == null
)
_instance = new
Datas();
// Retourne l'instance
return _instance;
}
public bool
Variable
{
get{ return
_variable; }
set{ _variable = value
; }
}
}
Et pour obtenir la valeur à partir d'une autre classe de ton appli :
cs_badrbadr
Messages postés475Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 novembre 20081 15 déc. 2005 à 18:13
sebmafate >> toi aussi, tu pourrais suivre....j'ai jamais dit que t'avais dit (lol) que les singleton étaient des variables. c'est mathmax qui avait dit ca dans le poste qui était avant le mien, je vais le citer :
J'ai cependant du mal à voir concrètement comment créer une variable singleton... un exemple ?
En tout cas, sinon c bien ce post-là parce que moi aussi je vais commencer a utiliser les singleton pour pratager des informations.