N'appler une method qu'une seule fois

cs_reyman Messages postés 148 Date d'inscription mercredi 20 février 2002 Statut Membre Dernière intervention 5 juin 2007 - 26 nov. 2004 à 11:00
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 - 26 nov. 2004 à 11:37
Salut les csharpers

Je veux créer une methode privée A() qui sera appelée dans mes méthode publiques. Mais je veux que celle ci ne soit executee qu'une seule fois quelque soit le nombre d'appels (2,100,3000...).

J'etais persuadé que ca faisait en ecrivant
private static void A()
mais en testant j'ai bien vu que ca ne marchait pas.
Donc quelqu'un peut il me dire la synthaxe a ecrire!!

Merci bcp

4 réponses

cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
26 nov. 2004 à 11:12
Le principe utiliser en general est :

private bool m_Initialised = false;

private void A ()
{
   if (m_Initialised) return;
   m_Initialised = true;
   ...
}

public void B ()
{
   A();
...
}
public void C ()
{
   A();
...
}


A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
0
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
26 nov. 2004 à 11:13
Voir meme :

private void A ()
{
lock (m_Initialised) {
if (m_Initialised) return;
m_Initialised = true;
}
...
}

pour les problemes de threads

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
0
cs_reyman Messages postés 148 Date d'inscription mercredi 20 février 2002 Statut Membre Dernière intervention 5 juin 2007
26 nov. 2004 à 11:17
A bon obligé de passer par un booléen
J'etais persuadé qu'il y avait un truc tout fait.
ba merci bcp
0
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
26 nov. 2004 à 11:37
Meme Ms utilise cette technique (CF. Reflector sur les DLL du framework)

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
0
Rejoignez-nous