Delegate Statement

   
Delegate Statement

Syntax

 [   AccessModifier   ] Delegate Sub   name   [([   arglist   ])]) [   AccessModifier   ] Delegate Function   name   [([   arglist   ])]) As   type   
AccessModifier (optional; Keyword)

Specifies scope/accessibility the same as when declaring a subroutine or function. Can be one of Public , Private , Protected , Friend , Protected Friend , or Shadows .

name (required; String literal)

The name of the delegate class.

arglist (optional)

The argument list; it has the same syntax as when defining a subroutine or function.

Description

Declares the parameters and return type of a delegate class. Note that the syntax is the same as that used when declaring a subroutine or function, with the addition of the keyword Delegate .

Rules at a Glance

  • Any procedure whose argument list and return type matches that of a declared delegate class can be used to create an instance of this delegate class, as the upcoming example illustrates.

  • For more information on delegates, see Section 7.1 in Chapter 7.

Example

Consider the following method:

 Public Class Class1     Public Sub AMethod(ByVal s As String)         Msgbox(s)     End Sub End Class 

Consider the following delegate declaration:

 Delegate Sub ADelegate(ByVal s As String) 

The following code uses the delegate to call the AMethod of Class1:

 Protected Sub Form1_Click(ByVal sender As Object, _                           ByVal e As System.EventArgs) _                           Handles MyBase.Click     ' Object of type Class1     Dim obj As New Class1(  )          ' Declare a new delegate     Dim delg As ADelegate    ' Define the delegate, passing the address of the object's method     delg = New ADelegate(AddressOf obj.AMethod)     ' Call the method using the Invoke method of the delegate     delg.Invoke("test")      End Sub 
   


VB.Net Language in a Nutshell
VB.NET Language in a Nutshell
ISBN: B00006L54Q
EAN: N/A
Year: 2002
Pages: 503

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net