Delegate in VB.NET

Delegate

Delegate is type which holds the method(s) reference in an object, similar to a function pointer in C and C++, delegates are object-oriented, type safe, and secure.

Multicast Delegate

It is a Delegate which holds the reference of more than one methods.

Multicast delegates must contain only methods that return void, else there is a run-time exception.

How we use delegate in VB.net programming:

public delegate sub mydlg()

Then we use the delegate by simply declaring a variable of the delegate and assigning the sub or function to run when called. First the sub to be called: 

Private Sub message()
Console.WriteLine ( "show message" )
End Sub

now it matches our declaration of MyDlg. it's a sub routine with no parameters. And then our test code: 

Dim dlg As mydel
dlg = New mydel(AddressOf message)
dlg.Invoke()

When we invoke the delegate, the message sub is run.

For example

Module Module1

    Public Delegate Sub mydel()

    Public Delegate Sub mydel1(ByVal a As Integer)

    Public Sub message()

        Console.WriteLine("show message")

    End Sub

    Public Sub add(ByVal a As Integer)

        Dim b As Integer

        b = a + a

        Console.Write(" Addition is : ")

        Console.WriteLine(b)

    End Sub

    Sub Main()

        Dim dlg As mydel

        dlg = New mydel(AddressOf message)

        dlg.Invoke()

        Dim dlg1 As mydel1

        dlg1 = New mydel1(AddressOf add)

        dlg1.Invoke(10)

    End Sub

End Module

OUTPUT

d1.gif