el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 2015
-
26 août 2005 à 11:25
TheSaib
Messages postés2367Date d'inscriptionmardi 17 avril 2001StatutMembreDernière intervention26 décembre 2007
-
26 août 2005 à 14:41
Salut,
voilà j'ai une classe avec une variable qui représente un état prenant 5 états possibles.
Voilà la variable en question :
public enum Etat_de_la_navette
{
attente = 0,
envoi_commande = 1,
init_boitier = 2,
transfert_fichier = 3,
creation_csv = 4
}
J'ai un get et un set pour y accéder :
public Etat_de_la_navette Etat_navette
{
get {return (Etat_de_la_navette) Etat_navette;}
set {Etat_navette = (Etat_de_la_navette) value;}
}
Dans ma classe Form1, lorsque je veux initialiser cette variable, je procède comme suit :
Une exception System.StackOverflowException
est levée à la ligne du Set. Comment je peux faire pour changer l'état
de la variable Etat_navette ? Je dois surement me planter dans les cast.
Y'a toujours la possibilité de faire un switch case dans le set{} avec les valeurs 0 à 4, mais je pense qu'il y a mieux ?
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 26 août 2005 à 11:41
pas besoin de cast dans les get/set.
de manière général, il n'est pas nécessaire de caster une valeur dans le set, puisque le compilateur refusera tout autre type que celui de la propriété.
et la ligne instance_de_ma_classe.Etat_navette = ma_classe.Etat_de_la_navette.attente;
et travaille dans ta classe avec la variable privée.
et change dans tes accesseurs :
public Etat_de_la_navette Etat_navette
{
get {return (Etat_de_la_navette) _etat_navette ;}
set {_etat_navette = (Etat_de_la_navette) value;}
}