class MaClasse
{
private Modifier<int> modifier;
private int counter;
public MaClasse ()
{
this.modifier = new Modifier<int> (this.counterGet, this.counterSet);
this.counter = 3;
}
public void Test ()
{
Console.WriteLine ("avant: " + this.counter); // devrait afficher "avant: 3"
this.modifier.SetValue (12);
Console.WriteLine ("apr�s: " + this.counter); // devrait afficher "apr�s: 12"
}
// berk
public int counterGet ()
{
return this.counter;
}
// et re-berk
public void counterSet (int value)
{
this.counter = value;
}
}
class Modifier<T>
{
public delegate T MyGetValue ();
public delegate void MySetValue (T value);
private MyGetValue getValue;
private MySetValue setValue;
public Modifier (MyGetValue getValue, MySetValue setValue)
{
this.getValue = getValue;
this.setValue = setValue;
}
public void SetValue (T value)
{
this.setValue (value);
}
}