J'ai une question, je vais essayer (pour une fois) d'être clair :
J'ai une classe ne contenant que des variables & fonctions statiques :
public class toto
{
private static String var = "pouet";
public static String changevar
{
get {return var;}
set {var = value;}
}
public static void zorro()
{
affiche(var);
}
}
(en supposant que "affiche" affiche la variable à l'écran).
1er essai : je fais :
toto.zorro();
Ca affiche "pouet", normal.
2ème essai : je fais :
toto.changevar = "glop";
toto.zorro();
Ca affiche "glop", normal.
J'arrete le programme, je reviens dans VS et je relance le 1er essai
(toto.zorro() seul). Ca affiche "glop" !!! Il me semble que ça devrait
afficher "pouet" !!! Je quitte, je reviens dans VS, je rebuild le
projet, je relance, ca affiche "pouet".
Bref, si je ne rebuild pas tout entre deux essais, la valeur contenue
dans var n'est pas réinitialisée avec "pouet" à chaque lancement, mais
il conserve la valeur initialisée lors de la précédente execution du
programme !!!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christophe Gricourt
Non - c'est pas possible.
J'ai une question, je vais essayer (pour une fois) d'être clair :
J'ai une classe ne contenant que des variables & fonctions statiques :
public class toto { private static String var = "pouet"; public static String changevar { get {return var;} set {var = value;} } public static void zorro() { affiche(var); } } (en supposant que "affiche" affiche la variable à l'écran).
1er essai : je fais :
toto.zorro();
Ca affiche "pouet", normal.
2ème essai : je fais :
toto.changevar = "glop"; toto.zorro(); Ca affiche "glop", normal.
J'arrete le programme, je reviens dans VS et je relance le 1er essai (toto.zorro() seul). Ca affiche "glop" !!! Il me semble que ça devrait afficher "pouet" !!! Je quitte, je reviens dans VS, je rebuild le projet, je relance, ca affiche "pouet".
Bref, si je ne rebuild pas tout entre deux essais, la valeur contenue dans var n'est pas réinitialisée avec "pouet" à chaque lancement, mais il conserve la valeur initialisée lors de la précédente execution du programme !!!
C'est pas possible hein ????
Non - c'est pas possible.
J'ai une question, je vais essayer (pour une fois) d'être clair :
J'ai une classe ne contenant que des variables & fonctions statiques :
public class toto
{
private static String var = "pouet";
public static String changevar
{
get {return var;}
set {var = value;}
}
public static void zorro()
{
affiche(var);
}
}
(en supposant que "affiche" affiche la variable à l'écran).
1er essai : je fais :
toto.zorro();
Ca affiche "pouet", normal.
2ème essai : je fais :
toto.changevar = "glop";
toto.zorro();
Ca affiche "glop", normal.
J'arrete le programme, je reviens dans VS et je relance le 1er essai
(toto.zorro() seul). Ca affiche "glop" !!! Il me semble que ça devrait
afficher "pouet" !!! Je quitte, je reviens dans VS, je rebuild le
projet, je relance, ca affiche "pouet".
Bref, si je ne rebuild pas tout entre deux essais, la valeur contenue
dans var n'est pas réinitialisée avec "pouet" à chaque lancement, mais
il conserve la valeur initialisée lors de la précédente execution du
programme !!!
J'ai une question, je vais essayer (pour une fois) d'être clair :
J'ai une classe ne contenant que des variables & fonctions statiques :
public class toto { private static String var = "pouet"; public static String changevar { get {return var;} set {var = value;} } public static void zorro() { affiche(var); } } (en supposant que "affiche" affiche la variable à l'écran).
1er essai : je fais :
toto.zorro();
Ca affiche "pouet", normal.
2ème essai : je fais :
toto.changevar = "glop"; toto.zorro(); Ca affiche "glop", normal.
J'arrete le programme, je reviens dans VS et je relance le 1er essai (toto.zorro() seul). Ca affiche "glop" !!! Il me semble que ça devrait afficher "pouet" !!! Je quitte, je reviens dans VS, je rebuild le projet, je relance, ca affiche "pouet".
Bref, si je ne rebuild pas tout entre deux essais, la valeur contenue dans var n'est pas réinitialisée avec "pouet" à chaque lancement, mais il conserve la valeur initialisée lors de la précédente execution du programme !!!
En regardant dans le taskmanager il doit y avoir une tache <nomduprojet>.vshost.exe. C'est ce process qui garde la valeur dans la variable statique. En recompilant, le processus est killé et relancé sous un autre ID, donc la variable statique est reinitialisée.
"Thierry Schembri" a écrit :
et pourquoi ?
En regardant dans le taskmanager il doit y avoir une tache
<nomduprojet>.vshost.exe. C'est ce process qui garde la valeur dans la
variable statique. En recompilant, le processus est killé et relancé sous un
autre ID, donc la variable statique est reinitialisée.
En regardant dans le taskmanager il doit y avoir une tache <nomduprojet>.vshost.exe. C'est ce process qui garde la valeur dans la variable statique. En recompilant, le processus est killé et relancé sous un autre ID, donc la variable statique est reinitialisée.