Reader Level:
ARTICLE

Delegates in VB.NET

Posted by TimothyA Vanover Articles | Visual Basic .NET November 10, 2012
The Zip file contains two projects. One is VB.Net and the other is C#. Each project is an example of the same use of a delegate.
  • 0
  • 0
  • 5106
Download Files:
 

The Zip file contains two projects. One is VB.Net and the other is C#. Each project is an example of the same use of a delegate. A base class is derived and the delegate calls a method on several classes derived from the base class. Several things are shown from this example. Using inherited base types to strinct type checking of a base type and calling class level methods from a single delegate.

Here is sample code from Delegates.vb file:

Module

Module1
Public Class Wisdom 'Class containing Delegate
Delegate Function GiveAdvice() As String
Public
Function OfferAdvice(ByVal Words As GiveAdvice) As String
Return
(Words())
End Function
End
Class
Public
Class Parent 'Base type
Public Overridable Function Message() As String
Return
("You should listen to your elders")
End Function
End
Class
Public
Class Dad 'derived from the base parent type
Inherits Parent
Public Overrides Function Message() As String
Return
("You should listen to your Mom")
End Function
End
Class
Public
Class Mom 'derived from the base parent type
Inherits Parent
Public Overrides Function Message() As String
Return
("You should listen to your Dad")
End Function
End
Class
Public
Class Daughter 'not derived from the base parent type
Public Function Message() As String
Return
("I know all there is to life")
End Function
End
Class
Public
Function CallAdvice(ByVal p As Parent) As String
Dim
objParents As New Wisdom
Dim TeenAgeGirl As Wisdom.GiveAdvice = New Wisdom.GiveAdvice(AddressOf
p
.Message)
Return (objparents.OfferAdvice(TeenAgeGirl))
End Function
Sub
Main()
Dim objDad As New Dad
Dim objMom As New Mom
Dim objDaughter As New Daughter
console.WriteLine(CallAdvice(objDad))
console.WriteLine(CallAdvice(objMom))
'will not work as this is not derived
'console.WriteLine(CallAdvice(objDaughter))
End Sub
End
Module

COMMENT USING

Trending up