Module Tester
Sub Main()
Dim array1 As Integer() = New Integer() {1, 2, 3, 4, 5}
Dim i As Integer
' display original elements of array1
For i = 0 To array1.GetUpperBound(0)
Console.WriteLine(array1(i))
Next
ModifyArray(array1) ' array is passed by reference
Console.WriteLine("The values of the modified array are:")
' display modified elements of array1
For i = 0 To array1.GetUpperBound(0)
Console.WriteLine(array1(i))
Next
' array element passed by value
ModifyElementByVal(array1(3))
Console.WriteLine("array1(3) after " & _
"ModifyElementByVal: " & array1(3))
' array element passed by reference
ModifyElementByRef(array1(3))
Console.WriteLine("array1(3) after " & _
"ModifyElementByRef: " & array1(3))
End Sub ' Main
' procedure modifies array it receives (note ByVal)
Sub ModifyArray(ByVal arrayParameter As Integer())
Dim j As Integer
For j = 0 To arrayParameter.GetUpperBound(0)
arrayParameter(j) *= 2
Next
End Sub ' ModifyArray
' procedure modifies integer passed to it
' original is not be modified (note ByVal)
Sub ModifyElementByVal(ByVal element As Integer)
Console.WriteLine("Value received in " & _
"ModifyElementByVal: " & element)
element *= 2
Console.WriteLine("Value calculated in " & _
"ModifyElementByVal: " & element)
End Sub ' ModifyElementByVal
' procedure modifies integer passed to it
' original is be modified (note ByRef)
Sub ModifyElementByRef(ByRef element As Integer)
Console.WriteLine("Value received in " & _
"ModifyElementByRef: " & element )
element *= 2
Console.WriteLine("Value calculated in " & _
"ModifyElementByRef: " & element)
End Sub
End Module
1
2
3
4
5
The values of the modified array are:
2
4
6
8
10
Value received in ModifyElementByVal: 8
Value calculated in ModifyElementByVal: 16
array1(3) after ModifyElementByVal: 8
Value received in ModifyElementByRef: 8
Value calculated in ModifyElementByRef: 16
array1(3) after ModifyElementByRef: 16