|
Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
8.3.1. Argument Passing By PositionDe positie waarin een argumentwaarde wordt opgegeven in een call naar een method, bepaald voor welke argumentvariabele een waarde wordt gespecificeerd.
In onderstaand voorbeeld zal de eerste argumentwaarde "Hello" worden toegekend aan de eerste argumentvariabele argument1. De tweede argumentwaarde zal worden toegekend aan de tweede argumentvariabele argument2.
Bij optionele argumenten mag men niet vergeten de nodige kommas aan te brengen om voor de compiler duidelijk te maken voor welke argumentvariabele men een waarde specificeert. Zo zal de call op regel (1) enkel een waarde opgeven voor argument3, gezien deze argumentwaarde vooraf wordt gegaan door twee kommas. Visual Basic 2010 Broncode Module Example1 Public Sub Main() Test1( "Hello", "World") Test2() Test2(10) Test2(, 20) Test2(, , 30) Test2(10, 20) Test2(10, , 30) Test2(, 20, 30) Test2(10, 20, 30) Console.ReadLine() End Sub Public Sub Test1( ByVal argument1 As String, _ ByVal argument2 As String) Console.WriteLine(argument1 & " " & argument2) End Sub Public Sub Test2( Optional ByVal argument1 As Integer = 1, _ Optional ByVal argument2 As Integer = 2, _ Optional ByVal argument3 As Integer = 3) Console.WriteLine(argument1 + argument2 + argument3) End SubEnd ModuleDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output Hello World
6
15
24
33
33
42
51
60 boven
8.3.2. Argument Passing By NameIn Visual Basic 9.0 ( 2008 ) is het ook mogelijk om aan de hand van de naam van de argumentvariabele te specificiëren welke argumentwaarde men voorziet. Visual Basic 2010 Broncode Module Example2 Public Sub Main() Example1.Test1(argument1:= "Hello", argument2:= "World") Example1.Test1(argument2:= "World", argument1:= "Hello") Example1.Test1( "Hello", argument2:= "World") Example1.Test2(argument2:=20) Example1.Test2(10, argument3:=30) Example1.Test2(argument1:=10, argument3:=30) Example1.Test2(argument3:=30, argument1:=10) Console.ReadLine() End SubEnd ModuleDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output Hello World
Hello World
Hello World
24
42
42
42 De volgorde waarin men argumentwaarden opgeeft kan zo onbelangrijk worden. Regel (1) en (2) zijn gelijkaardige calls.
Men geeft simpelweg via de naam van de argumentvariabele aan voor welk argumentvariabele de argumentwaarde is bedoeld.
Bemerk hoe het ook mogelijk is in dezelfde call zowel argumentwaarden op basis van positie en op basis van naam door te geven (3).
Vooral wanneer men dit toepast bij optionele argumenten kan dit beter leesbare code opleveren.
Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
|