[C#]Static variable
teebo
Messages postés
33570
Statut
Modérateur
-
tafiscobar Messages postés 1281 Statut Contributeur -
tafiscobar Messages postés 1281 Statut Contributeur -
Salut tout le monde,
Une petite question, j'ai admettons:
Bon je sais une string public c'est pas beau, mais c'est juste pour la question...
Bref, je voudrais savoir une fois que ma string private est assignee (static je rappelle), quand elle sera remise a "", plusieurs possibilite a mon avis mais je ne sais pas laquelle est la bonne:
1-Jamais (ca m'etonnerait si je ne serialise/deserialise pas)
2-Quand je quitte l'application
3-Quand je quitte la librairie
4-Quand je n'ai plus aucune instance (ca me parait bizzare...)
Voila, j'aimerai savoir :o)
Merci
. . Dieu a inventé le chat
\_/ pour que l'homme puisse caresser le tigre
Une petite question, j'ai admettons:
public class MaClasseAMoiQueJAi
{
public MaClasseAMoiQueJAi()
{
if (monStringCache!="")
{
MaString=monStringCache;
}
else
{
MessageBox("Blabla");
}
}
private static string monStringCache="";
public string MaString;
}
Bon je sais une string public c'est pas beau, mais c'est juste pour la question...
Bref, je voudrais savoir une fois que ma string private est assignee (static je rappelle), quand elle sera remise a "", plusieurs possibilite a mon avis mais je ne sais pas laquelle est la bonne:
1-Jamais (ca m'etonnerait si je ne serialise/deserialise pas)
2-Quand je quitte l'application
3-Quand je quitte la librairie
4-Quand je n'ai plus aucune instance (ca me parait bizzare...)
Voila, j'aimerai savoir :o)
Merci
. . Dieu a inventé le chat
\_/ pour que l'homme puisse caresser le tigre
A voir également:
- Static c#
- Adresse IP Static fixe - Forum Bbox Bouygues
- Anti static cable lg tv - Forum Téléviseurs
- [JAVA] difference entre static et final ✓ - Forum Programmation
- Static-spartan-neu-s-msn-com.akamaized.net - Forum Windows 10
- The serializable class does not declare a static final serialversionuid field of type long ✓ - Forum Programmation
5 réponses
Salut teutates...
C# est un langage imperatif, oui. Les chaines de caracteres sont de fait identifier par leur adresse memoire, de toutes facons il est impossible de changer la valeur d'une chaine directement, une nouvelle affectation affecte en fait un autre endroit dans la memoire avec la nouvelle valeur... Il ne s'agit aps ici d'un processus mais d'une variable...
En fait je craignais que la statique se reinitialise des que je n'aurais plus d'instance vivante de ma classe, apparement non, elle se reinitialise quand je coupe et relance le programme...Comme je suis dans une dll, c'est meme quand le exe qui a lance la dll se coupe...a priori...mais ca c'est pour le moment plus dur a tester, j'ai pas encore entiermenet confiance dans le Garbage collector...
. . Dieu a inventé le chat
\_/ pour que l'homme puisse caresser le tigre
C# est un langage imperatif, oui. Les chaines de caracteres sont de fait identifier par leur adresse memoire, de toutes facons il est impossible de changer la valeur d'une chaine directement, une nouvelle affectation affecte en fait un autre endroit dans la memoire avec la nouvelle valeur... Il ne s'agit aps ici d'un processus mais d'une variable...
En fait je craignais que la statique se reinitialise des que je n'aurais plus d'instance vivante de ma classe, apparement non, elle se reinitialise quand je coupe et relance le programme...Comme je suis dans une dll, c'est meme quand le exe qui a lance la dll se coupe...a priori...mais ca c'est pour le moment plus dur a tester, j'ai pas encore entiermenet confiance dans le Garbage collector...
. . Dieu a inventé le chat
\_/ pour que l'homme puisse caresser le tigre
je ne connais pas C#, je donne juste mon avis => Je pense q C# est un langage impératif (au sens suite d'actions et une variable est identifiée par son adresse mémoire) et donc je pense que tant q tu ne remets pas manuellement la string a "", elle ne sera jamais remplacée, son adresse sera juste réallouée a un autre processus lorsq la processus sera terminé et donc on ne touche pas a son contenu.
C'est tout ce q j'avais a dire, si t'as plus d'infos, n'hesites, cela m'interresserai.
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
C'est tout ce q j'avais a dire, si t'as plus d'infos, n'hesites, cela m'interresserai.
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
:o)
Oui mais je ne m'y suis pas encore fait completement :o) Pour une fois que un truc Microsoft a l'air vraiment bien je ne peux m'empecher de chercher ou est le gros probleme :o)
. . Dieu a inventé le chat
\_/ pour que l'homme puisse caresser le tigre
Oui mais je ne m'y suis pas encore fait completement :o) Pour une fois que un truc Microsoft a l'air vraiment bien je ne peux m'empecher de chercher ou est le gros probleme :o)
. . Dieu a inventé le chat
\_/ pour que l'homme puisse caresser le tigre
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour ou Bonsoir,
D'apres mes souvenirs ta variable est initialisée a la construction de ta classe a "". (on commence par faire toutes les initialisations avant de regarder le contenu des methodes)
Pour savoir quand ta variable sera effacer il faut connaitre l'ordre d'appel de ton programme ... logiquement a partir du moment ou tu ne fait plus refereence a cette classe elle devrait disparaitre ...
JSS.souvenirs.en.compilo.:-)
D'apres mes souvenirs ta variable est initialisée a la construction de ta classe a "". (on commence par faire toutes les initialisations avant de regarder le contenu des methodes)
Pour savoir quand ta variable sera effacer il faut connaitre l'ordre d'appel de ton programme ... logiquement a partir du moment ou tu ne fait plus refereence a cette classe elle devrait disparaitre ...
JSS.souvenirs.en.compilo.:-)
Ben il s'agit d'une methode Static (de classe autrement dit pour les puristes, et non d'instance), donc si lorsque l'instance disparait, la static aussi on perd un peu de l'interet...Moyennant ca c'est le risque que je craignais mais apres un essai vite fait ca a l'air d'aller...
. . Dieu a inventé le chat
\_/ pour que l'homme puisse caresser le tigre
. . Dieu a inventé le chat
\_/ pour que l'homme puisse caresser le tigre