94Microsoft Visual Studio 2010: A Beginner’s Guide

Delegates

Delegates let you hook up methods as the receiver to specific events. The delegate specifies the allowable signature, the number of arguments, and their types, of a method that is allowed to be hooked up to the event as a listener or handler. The EventHandler delegate type for the OverDraft event specifies what the signature of a method should be, as follows:

C#:

public event EventHandler OverDraft;

VB:

Public Event OverDraft As EventHandler

This EventHandler is a class that belongs to the .NET Framework class library, and it, by definition, specifies that any methods hooked up to the OverDraft event must define two parameters: an object of any type and an EventArgs class. EventHandler also specifies that the method does not return a value explicitly. The following method, account_ OverDraft (AccountOverdraft in VB), matches the predefined EventHandler signature:

C#:

static void account_OverDraft(object sender, EventArgs e)

{

Console.WriteLine("Overdraft Occurred");

}

VB :

Public Sub AccountOverdraft(ByVal sender As Object, ByVal e As EventArgs)

Console.WriteLine("Overdraft Occurred") End Sub

Notice that the C# account_OverDraft (AccountOverdraft in VB) doesn’t return a value and has two parameters that are type object and EventArgs, respectively. The account_OverDraft (AccountOverdraft in VB) method is hooked up to the OverDraft event in the Main method in Listing 4-1, repeated as follows for your convenience:

C#:

account.OverDraft += new EventHandler(account_OverDraft); account.CurrentBalance = -1;

VB:

AddHandler OverDraft, AddressOf AccountOverdraft CurrentBalance = -1

Page 117
Image 117
Microsoft 9GD00001 manual Delegates