Home
Browsez les 647 exemples
Téléchargez les 647 exemples
Téléchargez des chapitres
Achetez sur amazon.fr

Niveau: Débutant/Intermédiaire
ISBN-2-84177-339-6
50 Euros

Exemple 10-37 extrait du chapitre Le système de types


Exemple 10-36<     > Exemple 10-38


Cet exemple peut être compilé avec la ligne de commande:
csc.exe /target:exe Exemple_10_37.cs
Erreurs: 0 Avertissements: 0
Remarque:


Exemple_10_37.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);

      // Construction du délégué ( a.IncPrix , b.IncPrix , c.IncPrix ).
      Deleg deleg = a.IncPrix;
      Deleg deleg1 = b.IncPrix;
      deleg1 += c.IncPrix;
      deleg += deleg1;
      deleg(10);
      Console.WriteLine("a:{0} b:{1} c:{2}", 
         a.m_Prix , b.m_Prix , c.m_Prix );

      // Essai de suppression du délégué ( a.IncPrix , c.IncPrix )
      // non présent dans ( a.IncPrix , b.IncPrix , c.IncPrix ).
      Deleg deleg2 = a.IncPrix;
      deleg2 += c.IncPrix;
      deleg -= deleg2;
      deleg(10);
      Console.WriteLine("a:{0} b:{1} c:{2}",
         a.m_Prix , b.m_Prix , c.m_Prix );

      // Essai de suppression du délégué ( a.IncPrix , b.IncPrix )
      // présent dans ( a.IncPrix , b.IncPrix , c.IncPrix ).
      Deleg deleg3 = a.IncPrix;
      deleg3 += b.IncPrix;
      deleg -= deleg3;
      deleg(10);
      Console.WriteLine("a:{0} b:{1} c:{2}", 
         a.m_Prix , b.m_Prix , c.m_Prix);
   }
}	
Copyright Patrick Smacchia 2006 2007