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.10. Optionele Argumenten - Optional

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.

Indien je geen verschillende versies wenst te creëren van een method, maar toch zou wensen dat men voor bepaalde parameters niet altijd een waarde moet doorgeven, kan men gebruik maken van "optionele" argumenten.

Een optioneel argument definieer je door het Optional keyword te plaatsen voor ByVal of ByRef van de desbetreffende parameterdefinitie en door een default waarde toe te kennen aan deze parameter. Indien geen waarde wordt doorgeven voor deze parameter gebruikt deze de defaultwaarde gebruikt.

In onderstaand voorbeeld is de exponent optioneel, geef je geen waarde mee (1) wordt de defaultwaarde 2 gebruikt.
Visual Basic Broncode
Module Example1
    Sub Main()
        Console.WriteLine(GetPower(3, 3))
        Console.WriteLine(GetPower(3))                                     ' (1)
        '
        Console.ReadLine()
    End Sub
    Function GetPower(ByVal base As Integer, _
                      Optional ByVal exponent As Integer = 2) As Integer
        GetPower = base ^ exponent
    End Function
End Module
Visual Basic Output
27
9
Het toekennen van een defaultwaarde is enkel mogelijk bij optionele parameters, en is daar dan ook verplicht. De defaultwaarde moet geformuleerd worden aan de hand van een constante expressie ( bijvoorbeeld door een literal of verwijzing naar een constante te gebruiken ) omdat deze at compiletime reeds gekend moet zijn.

Meerdere optionele argumenten mogen gebruikt worden, maar deze moeten dan steeds achteraan in de parameterlijst worden geplaatst, anders zou voor de compiler niet duidelijk zijn welke parameterwaarde aan welke parameter moet worden gekoppeld.
Visual Basic Broncode
Module Example2
    Sub Main()
        ShowSum(1)       ' value1 = 1 | value2 = 2 | value3 = 3            ' (1)
        ShowSum(2, 3)    ' value1 = 2 | value2 = 3 | value3 = 3            ' (1)
        ShowSum(4, , 5)  ' value1 = 4 | value2 = 2 | value3 = 5            ' (1)
        ShowSum(6, 7, 8) ' value1 = 6 | value2 = 7 | value3 = 8            ' (1)
        '
        ShowSum(value1:=1)                                                 ' (2)
        ShowSum(value1:=2, value2:=3)                                      ' (2)
        ShowSum(value1:=4, value3:=5)                                      ' (2)
        ShowSum(value1:=6, value2:=7, value3:=8)                           ' (2)
        '
        ShowSum(value3:=5, value1:=4)                                      ' (3)
        ShowSum(value3:=8, value2:=7, value1:=6)                           ' (3)
        '
        ShowSum(4, value3:=5)                                              ' (4)
        '
        Console.ReadLine()
    End Sub
    Sub ShowSum(ByVal value1 As Integer, _
                Optional ByVal value2 As Integer = 2, _
                Optional ByVal value3 As Integer = 3)
        Console.WriteLine(value1 + value2 + value3)
    End Sub
End Module
Visual Basic Output
6
8
11
21
6
8
11
21
11
21
8
Het is mogelijk hier geen waarde op te geven voor de tweede parameter ( en deze zijn defaultwaarde 2 te laten gebruiken ) maar dan bijvoorbeeld toch een waarde op te geven voor de derde parameter. Hierbij moet je door het gebruik van kommas in de parameterlijst van aanroep duidelijk maken aan welke parameter je welke waarde doorgeeft. Door tussen de 2 kommas geen waarde te formuleren geef je dus geen waarde door aan de tweede parameter.

Sedert Visual Basic 9.0 ( 2008 ) is het nu ook mogelijk te per argumentwaarde te spedificiëren bij welke argumentvariabele deze horen (2) ( "argument passing by name" ).

In dat geval kan de volgorde waarin de argumentwaardes worden opgegeven, van geen enkel belang meer zijn (3).

Een combinatie van "argument passing by position" en "by name" mag ook (4).

Zie het topic over argument passing voor meer details.

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