/* par Alain VIZZINI / 25-02-2002 * se compile par : * csc /out:.\event01.exe event.cs */ using System; //la signature d'un gestionnaire d'evènement public delegate void MonEventHandler (int ancien, int nouveau); //------------------------------- SURVEILLEE ------------------------------------ class Surveillee { public Surveillee(){} public event MonEventHandler OnModif; private int x =0; public int X { get {return x;} set { OnModif (x, value); //on appelle le(s) gestionnaire(s) branchés sur l'event OnModif x = value; } } } //------------------------------- SURVEILLANT ------------------------------------ class Surveillant { public Surveillant() {} public Surveillant(Surveillee s) { surveiller (s); } public void surveiller (Surveillee s){ s.OnModif += new MonEventHandler (gestionnaireOnModif); //on vient d'ajouter un gestionnaire d'evenement à l'objet s sur l'event OnModif //Remarquez que l'on peut brancher PLUSIEURS gestionnaires ! } //la méthode ci-dessous à la signature de l'evenement !! private void gestionnaireOnModif (int o, int n) { Console.WriteLine ("avant {0}; dorévavant {1}", o, n); } } //------------------------------- TEST ------------------------------------ public class Test { public static void Main (String []args) { Surveillee s = new Surveillee(); Surveillant w = new Surveillant (); w.surveiller (s); s.X = 2; s.X = 6; } }