taoetc
Messages postés346Date d'inscriptionlundi 8 septembre 2003StatutMembreDernière intervention 3 septembre 2007
-
27 sept. 2004 à 16:54
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
28 sept. 2004 à 10:21
Bonjour , voila, j'ai besoin d'avoir une liste de constante accessible par plusieurs classes.
J'ai donc décidé de créer une classe qui contiendrait toutes ses constantes.
Dans les lcasses ou j'utilise ces constantes, je n'ai pas envie de déclaré une instance de cette classe de constante.
J'ai donc mis toutes mes constantes en static comme suit :
class MesConstantes
{
public static string Const1 = "Bonjour";
public static string Const2 = "Bonsoir";
}
Ce qui me permet de pouvoir faire un truc du genre
MesConstantes.Const1 au lieu de devoir faire
MesConstantes const = new MesConstantes();
const.Const1;
J'en arrive à ma question quand meme :
quel est la répercution sur la mémoire de déclarer des vairables ou bojets de ma classe en static?
Est ce que le fait que cela soit static fait que cela est charger au démarrage?
Je me dis que cela est plus pratique d'un point de vue code, et que cela m'évite de déclarer une instance de ma classe à chaque fois, donc une économie de mémoire, mais j'ai peut etre tord
merci d'avance popur les réponses que vous m'apporterez
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 27 sept. 2004 à 18:10
Je ne sais pas si c'est la meilleure solution mais c'est aussi ainsi que je procède :p
Par contre, si ce sont des constantes, je te conseille te les mettre en readonly pour éviter qu'une mauvaise modification se répercute sur toutes les classes qui les utilisent
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 28 sept. 2004 à 08:47
Oui tu as raison ;)
Il faut préciser que le readonly permet de ne pas déclarer la valeur immédiatement, contrairement au const.
Mais j'ai donné cet exemple parce qu'a la base du topic, on parlait de variables static, et qu'on ne peut pas déclarer de "static const".
Mais aprés tout, oui, pourquoi le pas utiliser de simples constantes plutot que des variables static !
a++
Mx
Vous n’avez pas trouvé la réponse que vous recherchez ?
taoetc
Messages postés346Date d'inscriptionlundi 8 septembre 2003StatutMembreDernière intervention 3 septembre 20073 28 sept. 2004 à 09:54
Bon alors voila le petit résumé de fin(peut etre),
En effet avec const ( public const string Const1...), ca fonctionnne correctement.
En fait, bon, je connaissais déjà le const mais je l'avais mis la ou il ne le faut pas , je m'explique
Le const a l'air de marcher sur tout ce qui type de base ( string, int,...) ou alors instance déjà créée.
Mon problème est que j'avais essayé le const sur une affectation avec new, sur des objets que j'ai créé, du coups affectation, et erreur car non constant :
génére une erreur :
public const MesMessages mess1 = new MesMessages("balbalb", type.erreur);
ca marche
public static readonly MesMessages mess1 = new MesMessages("balbalb", type.erreur);
merci pour vos réponses,
et si j'ai encore dit une connerie sur ce message, hésitez pas