// Delegatfunktion für den Event definieren
public delegate void MyHandler(object o, MyEventArgs e);
// Argumente, die beim Auslösen des Events übergeben werden, definieren
public class MyEventArgs : EventArgs
{
public readonly int iValue;
public MyEventArgs(int val)
{
iValue = val;
}
}
// Klasse, die den Event auslöst
public class MyClass
{
// Eventhandler
public event MyHandler MyEvent;
public int a;
public int b;
public int Calc()
{
int iRetVal = a + b;
// wenn Event abgefragt werden soll
if (MyEvent != null)
{
// Event auslösen
MyEvent(this, new MyEventArgs(iRetVal);
}
return iRetVal;
}
}
...
// irgendwo im Programm (Formular)
// Objekt der Klasse, die das Event auslöst, definieren
MyClass mc = new MyClass();
// Funktion die beim Auslösen des Events anspricht anmelden
mc.MyEvent += new MyHandler(MyCalcEventhandler);
// etwas rechnen und implizit das Event auslösen
mc.a = 5;
mc.b = 7;
mc.Calc();
// Funktion, die beim Auslösen des Events abgearbeitet wird
void MyCalcEventhandler(object sender, MyEventArgs e)
{
Console.WriteLine(e.iValue);
}