|
Exemple 14-30 extrait du chapitre Les mécanismes utilisables dans C#
Exemple 14-29< > Exemple 14-31
Cet exemple peut être compilé avec la ligne de commande: csc.exe /target:exe Exemple_14_30.cs Erreurs: 0 Avertissements: 0 Remarque:
Exemple_14_30.cs
delegate void DelegateTypeCompteur();
class CompteurBuilder{
string m_Name; // Un champ d'instance
internal CompteurBuilder(string name) { m_Name = name; }
internal DelegateTypeCompteur BuildCompteur(string compteurName) {
int compteur = 0;
DelegateTypeCompteur delegateInstanceCompteur = delegate {
System.Console.Write(compteurName +(++compteur).ToString());
// On aurait pu écrire this.m_Name.
System.Console.WriteLine(" Compteur fabriqué par: "+ m_Name);
};
return delegateInstanceCompteur;
}
}
class Program {
static void Main() {
CompteurBuilder cBuilder1 = new CompteurBuilder("Fabrique1");
CompteurBuilder cBuilder2 = new CompteurBuilder("Fabrique2");
DelegateTypeCompteur cA = cBuilder1.BuildCompteur("Compteur A:");
DelegateTypeCompteur cB = cBuilder1.BuildCompteur("Compteur B:");
DelegateTypeCompteur cC = cBuilder2.BuildCompteur("Compteur C:");
cA(); cA ();
cB(); cB();
cC(); cC();
}
}
Copyright Patrick Smacchia 2006 2007
|