I made a little events/delegates example. I'm sharing it with you because events and delegates can be hard when your learn them and this example could help you.

I know, there's better way to divide, but I needed a subject for the example. So I took the division.

You can download the example, it's a windows forms application with 2 textboxes and 1 button.

You enter 2 numbers in the textboxes and you click on the button and it will show the result or show an error.

Divison class (Division.cs) :

class Division
{
public delegate void EventHandler(Object sender, DivisionEventArgs e); //Delegate
public event EventHandler DivisionDone; //This event will be executed when the divison will be done.
public event EventHandler DivisionPerZero; //This event will be executed when the divisor is 0.

public Division() //Constructor
{
}

public void Divide(int dividend, int divisor)
{
if (divisor == 0)
{
if (DivisionPerZero != null)
{
DivisionPerZero(this, new DivisionEventArgs(dividend, divisor, 0.0)); //Execute the DivisionPerZero event
return;
}
}

double num = dividend/divisor;

if (DivisionDone != null)
{
DivisionDone(this, new DivisionEventArgs(dividend, divisor, num)); //Execute the DivisionDone event
}
}
}

class DivisionEventArgs : EventArgs //The arguments of the division.
{
public DivisionEventArgs(int a, int b, double r)
{
dividend = a;
divisor = b;
result = r;
}

private int dividend;
private int divisor;
private double result;

public int Dividend
{
get { return dividend; }
}

public int Divisor
{
get { return divisor; }
}

public double Result
{
get { return result; }
}
}


And you can use it like that :

private void TESTING_METHOD()
{
Division division = new Division();
division.DivisionDone += new Division.EventHandler(div_DivisionDone);
division.DivisionPerZero += new Division.EventHandler(div_DivisionPerZero);

division.Divide(10, 5);
}