|
Exemple 10-36 extrait du chapitre Le système de types
Exemple 10-35< > Exemple 10-37
Cet exemple peut être compilé avec la ligne de commande: csc.exe /target:exe Exemple_10_36.cs Erreurs: 0 Avertissements: 0 Remarque:
Exemple_10_36.cs
using System;
public class Article {
public int m_Prix = 0;
public Article(int Prix) { m_Prix = Prix; }
public int IncPrix(int i) {
m_Prix += i;
return m_Prix;
}
}
public class Program {
public delegate int Deleg(int i);
public static void Main() {
Article a = new Article(100);
Article b = new Article(103);
Article c = new Article(107);
Deleg delegs = a.IncPrix;
delegs += b.IncPrix;
delegs += c.IncPrix;
int somme = 0;
// Obtient la liste des délégués.
Delegate[] delegArr = delegs.GetInvocationList();
// Invoque une à une chaque méthode référencée.
foreach (Deleg deleg in delegArr)
somme += deleg(20);
Console.WriteLine(
"Prix après incrément de 20: a:{0} b:{1} c:{2}",
a.m_Prix , b.m_Prix , c.m_Prix);
Console.WriteLine("Somme des prix:{0}", somme );
}
}
Copyright Patrick Smacchia 2006 2007
|