Creating Custom Events in C#

November 19th, 2007 | by programming |

1) Creating the delegate:

public delegate void NumberTooHighDelegate(int Number);

2) Creating the event:

public event NumberTooHighDelegate NumberTooHighEvent;

3) Raising the event:

NumberTooHighEvent(Number1 + Number2);

4) Creating the delegate, creating the event and raising the event should be confined to a given class:

public class MTG {

    private int intA, intB;

    // note: both delegate and event declarations MUST be made public
    public delegate void NumberTooHighDelegate(int Number);

    // public event [Delegate Variable] [Event Variable];
    public event NumberTooHighDelegate NumberTooHighEvent;

    public int AddTwoNumbers(int Number1, int Number2) {
        if (Number1 + Number2 > 100) NumberTooHighEvent(Number1 + Number2);
        return Number1 + Number2;
    }

}

5) Assigning an Event Handler to the event outside of the class/object:

// this is the event handler method that handles an HtmlInputInput ServerClick event in ASP.NET:
private void Add_Click(Object source, EventArgs e) {
    try {
        MTG m = new MTG();
        // you can use the ‘new’ keyword to create an instance 
        // of a delegate (virtual method):
        m.NumberTooHighEvent += new MTG.NumberTooHighDelegate(MTG_NumberTooHigh);
        txtAns.Value = m.AddTwoNumbers(Convert.ToInt32(txtNum1.Value),
            Convert.ToInt32(txtNum2.Value)).ToString();
    }
    catch (Exception err) {
        ltrStatus.Text = err.Message;
    }
}

// this is the Delegate method for the MTG.NumberTooHigh event:
private void MTG_NumberTooHigh(int Number) {
    ltrStatus.Text = “The sum of two numbers provided exceeded 100!”;
}

Post a Comment