|
Dit artikel is gepubliceerd op woensdag 28 april 2010 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 komma's 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 komma's. Visual Basic Broncode Class Example1
Public Shared 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 Shared Sub Test1(ByVal argument1 As String, _
ByVal argument2 As String)
Console.WriteLine(argument1 & " " & argument2)
End Sub
Public Shared 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 Sub
End ClassDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Visual Basic Output Hello World
6
15
24
33
33
42
51
60 Terug naar 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 Broncode Class Example2
Public Shared 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 Sub
End ClassDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Visual Basic 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 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
|