homeboekenlinksledenabonneer je :Blijf op de hoogte door je te abonneren op de vbvoorbeelden RSS Niews Feed!Blijf op de hoogte door vbvoorbeelden te volgen op Twitter!Blijf op de hoogte door fan te worden van vbvoorbeelden op Facebook!
Visual Basic 2008 en 2010 Voorbeelden en Boeken Microsoft Visual Studio 2010Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

visual basic 2008 voorbeelden en boeken / visual basic 2010 voorbeelden en boeken

8.9. Method Overloading

Print Email Deel op FacebookDeel op TwitterDeel op DiggBookmark op Google BookmarksDeel op del.icio.usOverige Sociale Netwerksites...

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)                                                 ' (1)
        '
        Dim value2 As String = "test"
        ShowDouble(value2)                                                 ' (2)
        '
        Console.ReadLine()
    End Sub
    Sub ShowDouble(ByVal value As Integer)                                 ' (1)
        Console.WriteLine(value * 2)
    End Sub
    Sub ShowDouble(ByVal word As String)                                   ' (2)
        Console.WriteLine(word & word)
    End Sub
End Module
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 Module
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 Overloading

Opgave :

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 Module
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 Module

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

Het Groene Visual Basic 2008 & 2010 Voorbeelden Boek Het Blauwe Visual Basic 2008 & 2010 Voorbeelden Boek Het Rode Visual Basic 2008 & 2010 Voorbeelden Boek

Bevalt een artikel je, dan kan je de inhoud van vbvoorbeelden ook reclamevrij in boekvorm verkrijgen.

De inhoud is verdeeld over 3 boeken, Het Groene, Het Blauwe en Het Rode Visual Basic 2008 & 2010 Voorbeelden Boek.

Klik hier voor meer informatie.

Berichten

Fast UML Sequence Diagram Editor