|
Dit artikel is gepubliceerd op woensdag 28 april 2010 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
Men kan verschillende versies creëren van een method ( procedure of functie ) met dezelfde naam ( identifier ). In onderstaand voorbeeld zien we een versie van de ShowDouble procedure met een Integer argument en een versie met een String argument.
De compiler zal bij een aanroep naar deze procedure ( (1) en (2) ) de best passende versie uitkiezen gebaseerd op de argumenten. Geeft men dan bijvoorbeeld een Integer waarde door (1) bij de aanroep dan wordt deze aanroep gezien als een aanroep naar de versie met een Integer argument in zijn definitie, en zal hier dus het dubbele van die doorgegeven numerieke waarde op de console worden getoond.
Het creëren van verschillende versies ( met verschil in parameters ) van een method met identieke identifier wordt "overloading" ( of voluit "method overloading" ) genoemd. Visual Basic Broncode Module Example1
Sub Main()
Dim value1 As Integer = 5
ShowDouble(value1)
Dim value2 As String = "test"
ShowDouble(value2)
Console.ReadLine()
End Sub
Sub ShowDouble(ByVal value As Integer)
Console.WriteLine(value * 2)
End Sub
Sub ShowDouble(ByVal word As String)
Console.WriteLine(word & word)
End Sub
End ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Visual Basic Output 10
testtest Onderstaand voorbeeld illustreert hoe men ook verschillende versies kan creëren door een verschillend aantal parameters te gebruiken. Opnieuw zal de compiler de best passende versies, hier op basis van het aantal doorgegeven parameterwaarden bepalen. Visual Basic Broncode Module Example2
Sub Main()
Console.WriteLine(GetSum(1, 2))
Console.WriteLine(GetSum(1, 2, 3))
Console.WriteLine(GetSum(1, 2, 3, 4))
Console.ReadLine()
End Sub
Function GetSum(ByVal value1 As Integer, _
ByVal value2 As Integer) As Integer
GetSum = value1 + value2
End Function
Function GetSum(ByVal value1 As Integer, _
ByVal value2 As Integer, _
ByVal value3 As Integer) As Integer
GetSum = value1 + value2 + value3
End Function
Function GetSum(ByVal value1 As Integer, _
ByVal value2 As Integer, _
ByVal value3 As Integer, _
ByVal value4 As Integer) As Integer
GetSum = value1 + value2 + value3 + value4
End Function
End ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Visual Basic Output 3
6
10 Hoe verschillende versies van een method van elkaar moeten verschillen, om nog steeds voor de compiler duidelijk te houden welke versie je aanroept, is bepaald in de "overload-resolution". In Visual Basic kunnen we verschillende versies creëren van een method door een verschil te maken in datatypes van de argumenten, aantal argumenten en volgorde van de datatypes van argumenten. 8.9.1. Oefening Method OverloadingOpgave :
Breid onderstaande programmacode zo uit dat de calls naar de GetCombination functies ook ondersteund worden. Visual Basic Broncode Module ExerciseTask
Sub Main()
Console.WriteLine(ExerciseSolution.GetCombination("abc", "def"))
Console.WriteLine(ExerciseSolution.GetCombination(1, 2))
Console.WriteLine(ExerciseSolution.GetCombination(True, True))
Console.WriteLine(ExerciseSolution.GetCombination(True, False))
Console.WriteLine(ExerciseSolution.GetCombination(False, True))
Console.WriteLine(ExerciseSolution.GetCombination(False, False))
Console.ReadLine()
End Sub
End ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Visual Basic Output abcdef
3
True
False
False
False Oplossing : Visual Basic Broncode Module ExerciseSolution
Function GetCombination(ByVal value1 As String, _
ByVal value2 As String) As String
GetCombination = value1 & value2
End Function
Function GetCombination(ByVal value1 As Integer, _
ByVal value2 As Integer) As Integer
GetCombination = value1 + value2
End Function
Function GetCombination(ByVal value1 As Boolean, _
ByVal value2 As Boolean) As Boolean
GetCombination = value1 AndAlso value2
End Function
End ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Dit artikel is gepubliceerd op woensdag 28 april 2010 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
Visual Basic 2008 & 2010 Boeken
Berichten
|