Code:
public delegate void OnCountDelegate(int number);
definiert einen Typensicheren Methodenzeiger...
Code:
public event OnCountDelegate OnCount;
definiert das eigentliche Event in der Klasse, das ist wie eine Property, nur eben als event (

)
Code:
for (int i = from; i < to; i++)
OnCount(i);
ruft das Event OnCount auf. (du solltest noch abfragen, ob OnCount != null und erst dann aufrufen)
mit
Code:
demo.OnCount += new DemoCls.OnCountDelegate(MyOnCount);
weist du dem OnCount-Event eine neue Methode zu, die dann aufgerufen werden soll. dieses doofe
Code:
new DemoCls.OnCountDelegate
brauch man, damit C# merkt, dass man die methode in einen delegaten (sicheren methodenzeiger) wandeln will...